[![Latest release](https://img.shields.io/badge/release-3.0.1-blue)](https://github.com/PaladinCloud/CE/releases/latest)
[![Build Status](https://github.com/PaladinCloud/CE/blob/master/wiki/images/gitter.svg)](https://github.com/PaladinCloud/CE/actions?query=branch%3Amaster)
[![GitHub license](https://github.com/PaladinCloud/CE/blob/master/wiki/license_apache.svg)](https://github.com/PaladinCloud/CE/blob/master/LICENSE)
[![Slack](https://img.shields.io/badge/chat-on%20Slack-9cf)](http://paladincloudcommunity.slack.com/)
[![Slack](https://img.shields.io/badge/chat-on%20Discord-9cf)](https://discord.gg/xvCFD29Jj4)
[![Community Survey](https://img.shields.io/badge/community-survey-9cf)](https://paladincloud.io/paladin-cloud-survey/)

![Paladin Cloud, Inc](https://github.com/PaladinCloud/Rev1/raw/master/wiki/images/banner_paladincloud.png)

# Introduction
Paladin Cloud is a free open source cloud security platform focused on enabling you to find blindspots in your cloud security. It enables you to identify and visualize your cyber assets and security controls, while monitoring your multi and hybrid cloud environments for vulnerabilities, misconfigurations and security risks.

Our extensible, Security-as-Code (SaC) platform is designed to help developers and security teams reduce risks in their cloud environments. It functions as a policy management plane across multi-cloud and enterprise systems, protecting applications and data. The platform contains best practice security policies and performs continuous monitoring of cloud assets, prioritizing security violations based on severity levels to help you focus on the events that matter.

Its resource discovery capability creates an asset inventory, then evaluates security policies against each asset. Powerful visualization enables developers to quickly identify and remediate violations on a risk-adjusted basis. An auto-fix framework provides the ability to automatically respond to policy violations by taking predefined actions.

Paladin Cloud is an enterprise-grade holistic cloud security platform that can be used for continuous monitoring and reporting across any domain.

# Extend your Coverage

Paladin Cloud's plugin-based connector architecture allows for data ingestion from multiple sources. Plugins allow you to pull data from various cloud-based enterprise systems, such as Kubernetes management, API gateways and threat intelligence systems in order to holistically manage cloud security. Examples include, Qualys Vulnerability Assessment Platform, Bitbucket, TrendMicro Deep Security, Tripwire, Venafi Certificate Management, and Redhat. You can write rules based on data collected by these plugins to get a complete picture of your cloud security posture.

# Installation

Our [Standard Installation Guide](https://paladincloud.io/docs/Standard-Installation-Guide#standard-installation-guide) offers detailed installation instructions.

Our [Quick Install Guide](https://paladincloud.io/docs/quick-installation-guide/) covers installation without step-by-step instructions for advanced AWS users or those looking for a refresher.

## Documentation

Documentation is [here](https://paladincloud.io/docs/).

# How Does It Work?

Assess -> Report -> Remediate -> Repeat

Paladin Cloud constantly assesses and monitors your cloud security posture on a near real-time basis. The platform discovers assets, evaluates policy, creates issues for policy violations, and prioritizes remediation. If an auto-fix is configured with the policy, those auto-fixes are executed when the resources fail the evaluation. Policy violations cannot not be closed manually; the issue must be fixed on the inspected asset, and then Paladin Cloud will mark it closed in the next scan.

Exceptions can be added to policy violations. Sticky exceptions (exceptions based on resource attribute matching criteria) can be added to exempt similar resources that may be created in the future. Note that exceptions should be used sparingly and only if they are aligned with corporate security guidelines.

Asset groups are a powerful way to visualize cloud security and compliance. Asset groups are created by defining one or more target resource's attribute matching criteria. For example, you could create an asset group of all running assets by defining criteria to match all EC2 instances with attribute `instancestate.name=running`. Any new EC2 instance launched after the creation of an asset group will be automatically included in the group.

In the Paladin Cloud UI, you can select the scope of the portal to a specific asset group. All the data points shown in the UI will be confined to the selected asset group. It is common practice to create asset groups per account (or subscription, project), per application, per business unit, or per environment.

Asset groups are not just for setting the scope of the data shown in the UI. The groups can be used to scope rule execution as well. Policies contain one or more rules. These rules can be configured to run against all resources or a specific asset group. The rules will evaluate all resources in the asset group configured as the scope for the rule. This provides an opportunity to write policies that are very specific to an application or organization.

A good example is when some teams would like to enforce additional tagging standards beyond the global requirements. They implement this policy with their custom rules and configure it to run only on their assets.

# Paladin Cloud Key Capabilities

* Continuous asset discovery
* Continuous security policy evaluation
* Detailed reporting
* Auto-Fix for policy violations
* Ability to search all discovered resources
* Simplified policy violation tracking and prioritization
* Easy to use Self-Service portal
* Custom policies and custom auto-fix actions
* Dynamic asset grouping to view compliance
* Ability to create multiple compliance domains
* Exception management
* Email digests
* Supports unlimited AWS, Azure, and GCP accounts
* Completely automated installer
* OAuth2 Support
* Azure AD integration for login
* Role-based access control

# Technology Stack

* Front End - Angular
* Backend End APIs, Jobs, Rules - Java
* Installer - Python and Terraform

# Deployment Stack

* AWS ECS & ECR - For hosting UI and APIs
* AWS Batch - For rules and resource collection jobs
* AWS CloudWatch Rules - For rule trigger, scheduler
* AWS Elastic Search - Primary data store used by the web application
* AWS RDS - For admin CRUD functionalities
* AWS S3 - For storing inventory files and persistent storage of historical data
* AWS Lambda - policy execution

[Paladin Cloud installer](https://paladincloud.io/docs/Paladin-Cloud-Installation-(On-AWS-Cloud))  automatically launches all of these services and configures them.

# Usage

The installer will launch required AWS services listed in
the [installation instructions](https://paladincloud.io/docs/Paladin-Cloud-Installation-(On-AWS-Cloud)). After successful installation hit
the UI load balancer URL. Log into the application using the credentials supplied during the installation. The results
from the policy evaluation will start getting populated within 30 minutes. Trend line widgets will be populated when
there are at least two data points.

When you install Paladin Cloud, the AWS account where you install is the **source** account. Paladin Cloud can then
monitor other **target** AWS accounts. Refer to the
instructions [here](https://paladincloud.io/docs/Paladin-Cloud-Installation-(On-AWS-Cloud)) to add new accounts to Paladin Cloud. By
default the **source** account will be monitored by Paladin Cloud.

Login as Admin user and go to the Admin page from the top menu. In the Admin section, you can

* Create/Manage Policies
* Create/Manage Rules and associate Rules with Policies
* Create/Manage Asset Groups
* Create/Manage Sticky Exception
* Manage Jobs
* Create/Manage Access Roles
* Manage Paladin cloud Configurations
* For detailed instructions visit the Paladin Cloud [documentation](https://paladincloud.io/docs/)

# License

Paladin Cloud is a derivative of [T-Mobile's PacBot project](https://github.com/tmobile/pacbot). Paladin Cloud is
open-sourced under the terms of section 7 of the Apache 2.0 license and is released AS-IS WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND.


# RocketMQ Clients - Collection of Client Bindings for Apache RocketMQ

[![License][license-image]][license-url] [![Build][build-image]][build-url]

English | [简体中文](README-CN.md) | [RocketMQ Website](https://rocketmq.apache.org/)

## Overview

Client bindings for [Apache RocketMQ](https://rocketmq.apache.org/), as known as RocketMQ 5.x SDK. All of them follow the specification of [rocketmq-apis](https://github.com/apache/rocketmq-apis), replacing 4.x remoting-based counterparts. Clients in this repository are built on top of [Protocol Buffers](https://developers.google.com/protocol-buffers) and [gRPC](https://grpc.io/).

## Goal

Provide cloud-native and robust solutions for Java, C++, C#, Golang, Rust and all other mainstream programming languages.

## Features and Status

* Ready - ✅
* Work in progress - 🚧

| Feature                                        | Java  | C/C++ |  C#   | Golang | Rust  | Python | Node.js |  PHP  |
| ---------------------------------------------- | :---: | :---: | :---: | :----: | :---: | :----: | :-----: | :---: |
| Producer with standard messages                |   ✅   |   ✅   |   ✅   |   ✅    |   ✅   |   🚧    |    ✅    |   🚧   |
| Producer with FIFO messages                    |   ✅   |   ✅   |   ✅   |   ✅    |   ✅   |   🚧    |    ✅    |   🚧   |
| Producer with timed/delay messages             |   ✅   |   ✅   |   ✅   |   ✅    |   ✅   |   🚧    |    ✅    |   🚧   |
| Producer with transactional messages           |   ✅   |   ✅   |   ✅   |   ✅    |   ✅   |   🚧    |    ✅    |   🚧   |
| Simple consumer                                |   ✅   |   ✅   |   ✅   |   ✅    |   ✅   |   🚧    |    ✅    |   🚧   |
| Push consumer with concurrent message listener |   ✅   |   ✅   |   🚧   |   🚧    |   🚧   |   🚧    |    🚧    |   🚧   |
| Push consumer with FIFO message listener       |   ✅   |   ✅   |   🚧   |   🚧    |   🚧   |   🚧    |    🚧    |   🚧   |

## Prerequisite and Build

This project is organized as a monorepo, with each language's bindings containing specific instructions in their respective subdirectories for building the project. As the [rocketmq-apis](https://github.com/apache/rocketmq-apis) submodule is incorporated into the project and could be utilized by some bindings, we highly advise cloning the repository by executing the command below:

```sh
git clone --recursive git@github.com:apache/rocketmq-clients.git
```

## Contributing

Similar to other projects of Apache RocketMQ, any attempt to make this project better is welcome, including but not limited to filing a bug report, correcting type error or document writing to complete feature implementation. Do not hesitate to make a pull request if this project catches your attention.

## Related

* [rocketmq](https://github.com/apache/rocketmq): The implementation of server-side.
* [rocketmq-apis](https://github.com/apache/rocketmq-apis): Common communication protocol between server and client.
* [RIP-37: New and Unified APIs](https://shimo.im/docs/m5kv92OeRRU8olqX): RocketMQ proposal of new and unified APIs crossing different languages.
* [RIP-39: Support gRPC protocol](https://shimo.im/docs/gXqmeEPYgdUw5bqo): RocketMQ proposal of gRPC protocol support.

## License

[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) Copyright (C) Apache Software Foundation

[license-image]: https://img.shields.io/badge/license-Apache%202-4EB1BA.svg
[license-url]: https://www.apache.org/licenses/LICENSE-2.0.html
[build-image]: https://github.com/apache/rocketmq-clients/actions/workflows/build.yml/badge.svg
[build-url]: https://github.com/apache/rocketmq-clients/actions/workflows/build.yml


<img alt="" src="logo.svg" height="80px" />

# Mundus ![Java CI workflow](https://github.com/JamesTKhan/Mundus/actions/workflows/gradle.yml/badge.svg)
Mundus is a platform independent 3D world editor, built with Java, Kotlin and LibGDX + VisUI. You can
create your scenes in Mundus and then use the Mundus runtime to render and interact with
those scenes in a libGDX project. See [runtime usage](https://github.com/JamesTKhan/Mundus/wiki/Runtime-usage)
for an example. You can see current milestones for
releases on the [milestones](https://github.com/JamesTKhan/Mundus/milestones) page.

![Screenshot](https://user-images.githubusercontent.com/28971753/194986389-aff7af15-c04e-4639-97c6-a1c5b185bf15.png)

This project is at a very early stage in development and APIs may be missing basic features. Create an issue
if you notice something important that is missing.

## Current features
Below are some of the more interesting features, that already work

- Creation of multiple terrains
- Height map loader for terrains
- Procedural terrain generation
- Texture splatting for the terrain texture (max 5 textures per terrain)
- A complete terrain editing system with texture & height brushes
- 4 different brushes (brush form can be an arbitrary image, like in Blender or Gimp)
- 3 brush modes for each brush: Raise/Lower, Flatten & texture paint
- Custom implementation of [gdx-gltf](https://github.com/mgsx-dev/gdx-gltf) PBR shader for model rendering
- Water quads with reflections, refractions, foam, and customizable ripples
- Static Skyboxes with support for multiple skyboxes
- Loading of g3db/gltf/glb files. GLTF is the recommended format.
- Loading of obj/fbx/dae files (note, that the [fbx-conv](https://github.com/libgdx/fbx-conv) binary must be set in the settings)
- Visual translation, rotation tool, and scaling tools
- Multiple scenes in one project
- Full screen preview mode
- A component based scene graph (not fully implemented yet)
- Basic export of the project into a json format + asset (not needed for libGDX runtime)
- Undo/Redo system for most operations
- Highly accurate game object picking system, based on id color coding & offscreen framebuffer rendering.
  Basic concept: http://www.opengl-tutorial.org/miscellaneous/clicking-on-objects/picking-with-an-opengl-hack/

### Latest Release Video

[![Release video](https://img.youtube.com/vi/e7g5q4I1gdM/0.jpg)](https://www.youtube.com/watch?v=e7g5q4I1gdM)

## Discord Channel

If you need help with Mundus you can check out the Mundus discord [here](https://discord.gg/7MGT9JbnJX)
or alternatively in the libGDX discord go to **libraries/Mundus** thread under the **SPECIFIC TOPICS** section.

## Things to consider
- Mundus is constantly changing. Especially the internal representation of save files. At this stage of the project backwards compatability
is kept between minor changes, and I keep backwards compatability in mind for major version changes, but it is not guaranteed as the APIs are still
being developed.
- Depending on your keyboard layout some key shortcuts might be twisted (especially CTRL+Z and CTRL+Y for QWERTZ and QWERTY layouts)
because of the default GLFW keycode mapping. You can change the layout mapping in the settings dialog under Window -> Settings.

## Runtime
The only runtime being developed is for libGDX, which is included in this repository. See [runtime usage](https://github.com/JamesTKhan/Mundus/wiki/Runtime-usage)
for an example.
Runtimes for other engines/frameworks are not planned in the near futures.

## Made with Mundus

Listed from newest to oldest:

### [ShotGun Wedding](https://antzgames.itch.io/shotgun-wedding)

Created by: [AntzGames](https://github.com/antzGames)

![gif](https://user-images.githubusercontent.com/10563814/231760688-38814007-9a6d-41a7-9ed7-296de8b2d6d9.gif)

---

### [Santa is Coming](https://wjamesfl.itch.io/santa-is-coming)

Created by: [JamesTKhan](https://github.com/JamesTKhan)
![santa](https://user-images.githubusercontent.com/10563814/231762608-5427fd2b-4368-43e2-93ef-52ef484bc473.PNG)

### [Raid on Bungeling Bay](https://antzgames.itch.io/raid3d)

Created by: [AntzGames](https://github.com/antzGames)
![image](https://user-images.githubusercontent.com/28971753/194956176-6964931c-ac80-43a0-9049-6d5abfe94be8.png)

---

### [28 Years Later](https://antzgames.itch.io/28-years-later)

Created by: [AntzGames](https://github.com/antzGames)
![image](https://user-images.githubusercontent.com/28971753/194956847-91da8ad3-eb63-42c3-b965-1317963c930f.png)

---

### [The Time Cruise](https://wjamesfl.itch.io/the-time-cruise)

Created by: [JamesTKhan](https://github.com/JamesTKhan)
![image](https://user-images.githubusercontent.com/28971753/194957213-7d83a201-9f68-46f1-a01a-f6b724ac5f11.png)

## Contributing
Contributions are greatly appreciated. To make the process as easy as possible please follow the [Contribution Guide](https://github.com/JamesTKhan/Mundus/wiki/Contributing).
To get an overview over the project you might also want to check out the [Project overview & architecture](https://github.com/JamesTKhan/Mundus/wiki/Project-overview-&-architecture) article.
I label issues that are good for first time contributes as "good first issue."

## Working from source
See this [wiki article](https://github.com/JamesTKhan/Mundus/wiki/Working-from-source).

## Mundus origin
This started as a fork of [Mundus](https://github.com/mbrlabs/Mundus). Mundus is no longer developed so this standalone repository was created. Special thanks to mbrlabs
and the original contributors of Mundus for all the work they did.

Mundus was licensed under the Apache-2.0 license.

## Credits
Logo design: [Franziska Böhm / noxmoon.de](http://noxmoon.de) ([CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/))


# assertj-automation [ ![Download](https://api.bintray.com/packages/palantir/releases/assertj-automation/images/download.svg) ](https://bintray.com/palantir/releases/assertj-automation/_latestVersion)

_Automatic code rewriting for AssertJ using error-prone and refaster._

## Why

### (1) Improve failure messages in existing codebases

By making code changes like the following, we can drastically improve failure messages:

```diff
-assertTrue(continents.size() == 7);
+assertThat(continents).hasSize(7);
```

From this hard-to-debug message:

```
Expected :true
Actual   :false
```

To this clearer example. An engineer can now quickly diagnose what went wrong - perhaps they left a `foo` in recently:

```
java.lang.AssertionError:
Expected size:<7> but was:<8> in:
<["Africa", "Asia", "Europe", "North America", "South America", "Antarctica", "Australia", "foo"]>
```

There _many_ more sub-optimal patterns that this automation can detect and fix. By codifying these patterns into tooling that can be run local and on CI, we can reduce the burden on code reviewers because all contributions will already comply with AssertJ best practises.

These fixes also help facilitate the move from JUnit 4 -> JUnit 5, as raw JUnit4 assertions can be eliminated (e.g. [assertTrue and assertEquals](https://junit.org/junit4/javadoc/4.8/org/junit/Assert.html)) before actually doing the JUnit 4 -> 5 migration.

### (2) Consolidate on a single assertions library

When codebases use a mixture of Hamcrest, AssertJ, raw JUnit assertions (both 4 and 5), Google Truth etc, contributors can be unsure which to use, leading to unnecessary back-and-forth during code review if they happened to pick the wrong one.

In practise, because many of these libraries are quite similar, just picking one and committing to it is a reasonable strategy.  We picked AssertJ because its fluent API is has nice auto-completion properties and it's nicely extensible.

## Usage: `net.ltgt.errorprone`

Error-prone is maintained by Google and can be used with [Bazel, Maven, Gradle, Ant](https://errorprone.info/docs/installation). Use the following Gradle:

```gradle
plugins {
  // we assume you are already using the Java plugin
  id "net.ltgt.errorprone" version "0.6"
}

dependencies {
  annotationProcessor "com.palantir.assertj-automation:assertj-error-prone:<latest>" // see badge above

  errorprone "com.google.errorprone:error_prone_core:2.3.4"
  errorproneJavac "com.google.errorprone:javac:9+181-r4173-1"
}

tasks.withType(JavaCompile) {
  options.errorprone.errorproneArgs += [
    '-Xep:PreferAssertj:ERROR',
    // ... include other rules too
  ]
}
```

_Note: refaster rules can't yet be applied from the `net.ltgt.errorprone` plugin, see the `baseline` plugin below._

## Alternative usage: `com.palantir.baseline`

Palantir's [Baseline](https://github.com/palantir/gradle-baseline) family of plugins sets up error-prone and allows applying auto-fixes from both refaster and error-prone. Run `./gradlew compileTestJava -PerrorProneApply -PrefasterApply` to apply the fixes.

```
plugins {
  id 'com.palantir.baseline` version '2.43.0'
}
```

To ensure the automatically refactored code remains readable by humans, we then run the `./gradlew formatDiff` command provided by [palantir-java-format](https://github.com/palantir/palantir-java-format). This surgically reformats the lines of code that were touched, while preserving the rest of the file.

```gradle
buildscript {
  dependencies{
    classpath 'com.palantir.javaformat:gradle-palantir-java-format:0.3.9'
  }
}
apply plugin: 'com.palantir.java-format'
```


> _This repository is maintained by the Develocity Solutions team, as one of several publicly available repositories:_
> - _[Develocity Build Configuration Samples][develocity-build-config-samples]_
> - _[Develocity Build Validation Scripts][develocity-build-validation-scripts]_
> - _[Develocity Open Source Projects][develocity-oss-projects]_
> - _[Common Custom User Data Maven Extension][ccud-maven-extension]_
> - _[Common Custom User Data Gradle Plugin][ccud-gradle-plugin] (this repository)_
> - _[Common Custom User Data sbt Plugin][ccud-sbt-plugin]_
> - _[Android Cache Fix Gradle Plugin][android-cache-fix-plugin]_

# Common Custom User Data Gradle Plugin

[![Verify Build](https://github.com/gradle/common-custom-user-data-gradle-plugin/actions/workflows/build-verification.yml/badge.svg?branch=main)](https://github.com/gradle/common-custom-user-data-gradle-plugin/actions/workflows/build-verification.yml)
[![Plugin Portal](https://img.shields.io/maven-metadata/v?metadataUrl=https://plugins.gradle.org/m2/com/gradle/common-custom-user-data-gradle-plugin/maven-metadata.xml&label=Plugin%20Portal)](https://plugins.gradle.org/plugin/com.gradle.common-custom-user-data-gradle-plugin)
[![Revved up by Develocity](https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A)](https://ge.solutions-team.gradle.com/scans)

The Common Custom User Data Gradle plugin for Develocity enhances published build scans
by adding a set of tags, links and custom values that have proven to be useful for many projects building with Develocity.

You can leverage this plugin for your project in one of two ways:
1. [Apply the published plugin](#applying-the-published-plugin) directly in your build and immediately benefit from enhanced build scans
2. Copy this repository and [develop a customized version of the plugin](#developing-a-customized-version-of-the-plugin) to standardize Develocity usage across multiple projects

## Applying the published plugin

The Common Custom User Data Gradle plugin is available in the [Gradle Plugin Portal](https://plugins.gradle.org/plugin/com.gradle.common-custom-user-data-gradle-plugin). This
plugin requires the [Develocity Gradle plugin](https://plugins.gradle.org/plugin/com.gradle.develocity) to also be applied in your build in order to have an effect.

In order for the Common Custom User Gradle plugin to become active, you need to register it in the `settings.gradle(.kts)` file of your project. The `settings.gradle(.kts)` file is the same
file where you have already declared the Develocity Gradle plugin.

See [here](settings.gradle.kts) for an example.

### Version compatibility

This table details the version compatibility of the Common Custom User Data Gradle plugin with the Develocity Gradle plugin.

| Common Custom User Data Gradle plugin versions | Develocity Gradle plugin versions        | Gradle version |
| ---------------------------------------------- | ---------------------------------------- | -------------- |
| `1.0+`                                         | `3.0+`                                   | `5.0+`         |
| `1.7+`                                         | `1.8+`                                   | `4.0+`         |

## Captured data

The additional tags, links and custom values captured by this plugin include:
- A tag representing the operating system
- A tag representing how the build was invoked, be that from your IDE (IDEA, Eclipse, Android Studio) or from the command-line
- A tag representing builds run on CI, together with a set of tags, links and custom values specific to the CI server running the build
- For Git repositories, information on the commit id, branch name, status, and whether the checkout is dirty or not

See [CustomBuildScanEnhancements.java](./src/main/java/com/gradle/CustomBuildScanEnhancements.java) for details on what data is
captured and under which conditions.

## Configuration overrides

This plugin also allows overriding various Develocity related settings via system properties and environment variables:
- Develocity general configuration
- Remote build cache configuration
- Local build cache configuration

See [Overrides.java](./src/main/java/com/gradle/Overrides.java) for the override behavior.

You can use the system properties and environment variables to override Develocity related settings temporarily without having
to modify the build scripts. For example, to disable the local build cache when running a build:

```bash
./gradlew -Dgradle.cache.local.enabled=false build
```

<details>
  <summary>Click to see the complete set of available system properties and environment variables in the table below. </summary>

### Develocity settings

| Develocity API                  | System property                 | Environment variable            |
|:--------------------------------|:--------------------------------|:--------------------------------|
| develocity.server               | develocity.url                  | DEVELOCITY_URL                  |
| develocity.allowUntrustedServer | develocity.allowUntrustedServer | DEVELOCITY_ALLOWUNTRUSTEDSERVER |

### Local Build Cache settings

| Local Build Cache API                            | System property                                 | Environment variable                            |
|:-------------------------------------------------|:------------------------------------------------|:------------------------------------------------|
| buildCache.local.setEnabled                      | gradle.cache.local.enabled                      | GRADLE_CACHE_LOCAL_ENABLED                      |
| buildCache.local.setPush                         | gradle.cache.local.push                         | GRADLE_CACHE_LOCAL_PUSH                         |
| buildCache.local.setDirectory                    | gradle.cache.local.directory                    | GRADLE_CACHE_LOCAL_DIRECTORY                    |
| buildCache.local.setRemoveUnusedEntriesAfterDays | gradle.cache.local.removeUnusedEntriesAfterDays | GRADLE_CACHE_LOCAL_REMOVEUNUSEDENTRIESAFTERDAYS |

### HTTP Build Cache settings

| HTTP Build Cache API                       | System property                           | Environment variable                      |
|:-------------------------------------------|:------------------------------------------|:------------------------------------------|
| buildCache.remote.setEnabled               | gradle.cache.remote.enabled               | GRADLE_CACHE_REMOTE_ENABLED               |
| buildCache.remote.setPush                  | gradle.cache.remote.push                  | GRADLE_CACHE_REMOTE_PUSH                  |
| buildCache.remote.setAllowUntrustedServer  | gradle.cache.remote.allowUntrustedServer  | GRADLE_CACHE_REMOTE_ALLOWUNTRUSTEDSERVER  |
| buildCache.remote.setAllowInsecureProtocol | gradle.cache.remote.allowInsecureProtocol | GRADLE_CACHE_REMOTE_ALLOWINSECUREPROTOCOL |
| buildCache.remote.setUrl                   | gradle.cache.remote.url                   | GRADLE_CACHE_REMOTE_URL                   |

### Develocity Build Cache settings

| Develocity Build Cache API                 | System property                              | Environment variable                      |
|:-------------------------------------------|:---------------------------------------------|:------------------------------------------|
| buildCache.remote.setEnabled               | gradle.cache.remote.enabled                  | GRADLE_CACHE_REMOTE_ENABLED               |
| buildCache.remote.setPush                  | gradle.cache.remote.push                     | GRADLE_CACHE_REMOTE_PUSH                  |
| buildCache.remote.setAllowUntrustedServer  | gradle.cache.remote.allowUntrustedServer     | GRADLE_CACHE_REMOTE_ALLOWUNTRUSTEDSERVER  |
| buildCache.remote.setAllowInsecureProtocol | gradle.cache.remote.setAllowInsecureProtocol | GRADLE_CACHE_REMOTE_ALLOWINSECUREPROTOCOL |
| buildCache.remote.setServer                | gradle.cache.remote.server                   | GRADLE_CACHE_REMOTE_SERVER                |
| buildCache.remote.setPath                  | gradle.cache.remote.path                     | GRADLE_CACHE_REMOTE_PATH                  |

</details>

## Developing a customized version of the plugin

For more flexibility, we recommend creating a copy of this repository so that you may develop a customized version of the plugin and publish it internally for your projects to consume.

This approach has a number of benefits:
- Tailor the build scan enhancements to exactly the set of tags, links and custom values you require
- Standardize the configuration for connecting to Develocity and the remote build cache in your organization, removing the need for each project to specify this configuration

If your customized plugin provides all required Develocity configuration, then a consumer project will get all the benefits of Develocity simply by applying the plugin. The
project sources provide a good template to get started with your own plugin.

Refer to the [Javadoc](https://docs.gradle.com/enterprise/gradle-plugin/api/) for more details on the key types available for use.

See the [Gradle User Manual](https://docs.gradle.org/current/userguide/publishing_gradle_plugins.html#custom-plugin-repositories) for more details on publishing Gradle plugins to an internal repository.

## Changelog

Refer to the [release history](https://github.com/gradle/common-custom-user-data-gradle-plugin/releases) to see detailed changes on the versions.

## Learn more

Visit our website to learn more about [Develocity][develocity].

## License

The Develocity Common Custom User Data Gradle plugin is open-source software released under the [Apache 2.0 License][apache-license].

[develocity-build-config-samples]: https://github.com/gradle/develocity-build-config-samples
[develocity-build-validation-scripts]: https://github.com/gradle/gradle-enterprise-build-validation-scripts
[develocity-oss-projects]: https://github.com/gradle/develocity-oss-projects
[ccud-gradle-plugin]: https://github.com/gradle/common-custom-user-data-gradle-plugin
[ccud-maven-extension]: https://github.com/gradle/common-custom-user-data-maven-extension
[ccud-sbt-plugin]: https://github.com/gradle/common-custom-user-data-sbt-plugin
[android-cache-fix-plugin]: https://github.com/gradle/android-cache-fix-gradle-plugin
[develocity]: https://gradle.com/develocity
[apache-license]: https://www.apache.org/licenses/LICENSE-2.0.html


![Light Logo](https://raw.githubusercontent.com/apache/shenyu-website/main/static/img/logo-light.svg#gh-dark-mode-only)
![Dark Logo](https://raw.githubusercontent.com/apache/shenyu-website/main/static/img/logo.svg#gh-light-mode-only)

  Scalable, High Performance, Responsive API Gateway Solution for all MicroServices

  https://shenyu.apache.org/

    <image src="https://img.shields.io/docker/pulls/apache/shenyu-bootstrap" alt="Docker Pulls"/>

---

# Architecture

 ![](https://shenyu.apache.org/img/architecture/shenyu-architecture-3d.png)

----

# Why named Apache ShenYu

ShenYu (神禹) is the honorific name of Chinese ancient monarch Xia Yu (also known in later times as Da Yu),
who left behind the touching story of the three times he crossed the Yellow River for the benefit of the people and successfully managed the flooding of the river.
He is known as one of the three greatest kings of ancient China, along with Yao and Shun.

   * Firstly, the name ShenYu is to promote the traditional virtues of our Chinese civilisation.

   * Secondly, the most important thing about the gateway is the governance of the traffic.

   * Finally, the community will do things in a fair, just, open and meritocratic way, paying tribute to ShenYu while also conforming to the Apache Way.

---

# Features

* Proxy: Support for Apache® Dubbo™, Spring Cloud, gRPC, Motan, SOFA, TARS, WebSocket, MQTT
* Security: Sign, OAuth 2.0, JSON Web Tokens, WAF plugin
* API governance: Request, response, parameter mapping, Hystrix, RateLimiter plugin
* Observability: Tracing, metrics, logging plugin
* Dashboard: Dynamic traffic control, visual backend for user menu permissions
* Extensions: Plugin hot-swapping, dynamic loading
* Cluster: NGINX, Docker, Kubernetes
* Language: provides .NET, Python, Go, Java client for API register

---

# Quick Start (docker)

### Create network for Shenyu

```
> docker network create shenyu
```

### Run Apache ShenYu Admin

```
> docker pull apache/shenyu-admin
> docker run -d --name shenyu-admin-quickstart -p 9095:9095 --net shenyu apache/shenyu-admin
```

### Run Apache ShenYu Bootstrap

```
> docker pull apache/shenyu-bootstrap
> docker run -d --name shenyu-quickstart -p 9195:9195 -e "shenyu.local.enabled=true" -e SHENYU_SYNC_WEBSOCKET_URLS=ws://shenyu-admin-quickstart:9095/websocket --net shenyu apache/shenyu-bootstrap
```

### Set router

* Real request  ：http://127.0.0.1:8080/helloworld,

```json
{
  "name" : "Shenyu",
  "data" : "hello world"
}
```

* Set routing rules (Standalone)

Add `localKey: 123456` to Headers. If you need to customize the localKey, you can use the sha512 tool to generate the key based on plaintext and update the `shenyu.local.sha512Key` property.

```
curl --location --request POST 'http://localhost:9195/shenyu/plugin/selectorAndRules' \
--header 'Content-Type: application/json' \
--header 'localKey: 123456' \
--data-raw '{
    "pluginName": "divide",
    "selectorHandler": "[{\"upstreamUrl\":\"127.0.0.1:8080\"}]",
    "conditionDataList": [{
        "paramType": "uri",
        "operator": "match",
        "paramValue": "/**"
    }],
    "ruleDataList": [{
        "ruleHandler": "{\"loadBalance\":\"random\"}",
        "conditionDataList": [{
            "paramType": "uri",
            "operator": "match",
            "paramValue": "/**"
        }]
    }]
}'
```

* Proxy request ：http://localhost:9195/helloworld

```json
{
  "name" : "Shenyu",
  "data" : "hello world"
}
```
---

# Plugin

 Whenever a request comes in, Apache ShenYu will execute it by all enabled plugins through the chain of responsibility.

 As the heart of Apache ShenYu, plugins are extensible and hot-pluggable.

 Different plugins do different things.

 Of course, users can also customize plugins to meet their own needs.

 If you want to customize, see [custom-plugin](https://shenyu.apache.org/docs/developer/custom-plugin/) .

---

# Selector & Rule

  According to your HTTP request headers, selectors and rules are used to route your requests.

  Selector is your first route, It is coarser grained, for example, at the module level.

  Rule is your second route and what do you think your request should do. For example a method level in a module.

  The selector and the rule match only once, and the match is returned. So the coarsest granularity should be sorted last.

---

# Data Caching & Data Sync

  Since all data have been cached using ConcurrentHashMap in the JVM, it's very fast.

  Apache ShenYu dynamically updates the cache by listening to the ZooKeeper node (or WebSocket push, HTTP long polling) when the user changes configuration information in the background management.

  ![](https://shenyu.apache.org/img/shenyu/dataSync/shenyu-config-processor-en.png)

  ![](https://shenyu.apache.org/img/shenyu/dataSync/config-strategy-processor-en.png)

---

# Prerequisite

   * JDK 1.8+

---

# Stargazers over time

[![Stargazers over time](https://starchart.cc/apache/shenyu.svg)](https://starchart.cc/apache/shenyu.svg)

---

# Contributor and Support

* [How to Contribute](https://shenyu.apache.org/community/contributor-guide)
* [Mailing Lists](mailto:dev@shenyu.apache.org)

---

# Known Users

In order of registration, More access companies are welcome to register at [https://github.com/apache/shenyu/issues/68](https://github.com/apache/shenyu/issues/68) (For open source users only) .

All Users : [Known Users](https://shenyu.apache.org/community/user-registration)


[![ci](https://github.com/civiform/civiform/actions/workflows/push_tests.yaml/badge.svg)](https://github.com/civiform/civiform/actions/workflows/push_tests.yaml)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6008/badge)](https://bestpractices.coreinfrastructure.org/projects/6008)
[![AWS Staging Deploy](https://github.com/civiform/civiform-staging-deploy/actions/workflows/aws_deploy.yaml/badge.svg?branch=main)](https://github.com/civiform/civiform-staging-deploy/actions/workflows/aws_deploy.yaml)
![codecov.io](https://codecov.io/github/civiform/civiform/coverage.svg?branch=main)
[![Code Style: Google](https://img.shields.io/badge/code%20style-google-blueviolet.svg)](https://google.github.io/styleguide/)

# CiviForm

CiviForm aims to simplify the application process for benefits programs by re-using applicant data
for multiple benefits applications. It is being developed by [Google.org](https://www.google.org/)
in collaboration with [Exygy](https://www.exygy.com/) and the [City of Seattle](https://www.seattle.gov/tech).

Key features:

- No-code questionnaire definitions: admins can add new questions and programs using the UI without the need for custom code
- No-code conditional logic for eligibility requirements
- No-code multi-language support through the admin UI
- Address correction and service area validation
- Bulk data export with admin-defined privacy settings to preserve applicant privacy
- Trusted intermediary role to enable community based organizations to manage applications on behalf of clients
- Recursive data model: admins can define repeated and recursive questions for nested data such as asking for each address for each employer of each member of a household

## Contributing

To get started please first read our [Technical contribution guide](https://github.com/civiform/civiform/wiki/Technical-contribution-guide).

If you're interested in just digging around and interacting with the code, see
[Getting started](https://github.com/civiform/civiform/wiki/Getting-started) for guidance on
setting up your environment and running a local development server.


## 动态可观测线程池，提高系统运行保障能力

[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)
[![Build Status](https://github.com/opengoofy/hippo4j/actions/workflows/ci.yml/badge.svg?event=push)](https://github.com/opengoofy/hippo4j)

![](https://img.shields.io/github/stars/opengoofy/hippo4j?color=5470c6)
![](https://img.shields.io/github/forks/opengoofy/hippo4j?color=3ba272)
![](https://img.shields.io/github/contributors/opengoofy/hippo4j)
[![Docker Pulls](https://img.shields.io/docker/pulls/hippo4j/hippo4j-server.svg?label=docker%20pulls&color=fac858)](https://store.docker.com/community/images/hippo4j/hippo4j-server)
[![codecov](https://codecov.io/gh/opengoofy/hippo4j/branch/develop/graph/badge.svg?token=WBUVJN107I)](https://codecov.io/gh/opengoofy/hippo4j)
[![EN doc](https://img.shields.io/badge/readme-English-orange.svg)](https://github.com/opengoofy/hippo4j/blob/develop/README-EN.md)

| **Stargazers Over Time**                                                                                | **Contributors Over Time**                                                                                |
|:---------------------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| [![Stargazers over time](https://api.star-history.com/svg?repos=opengoofy/hippo4j&type=Date)](https://api.star-history.com/svg?repos=opengoofy/hippo4j&type=Date) | [![Contributor over time](https://contributor-graph-api.apiseven.com/contributors-svg?chart=contributorOverTime&repo=opengoofy/hippo4j)](https://www.apiseven.com/en/contributor-graph?chart=contributorOverTime&repo=opengoofy/hippo4j) |

### 开源地址

---

GitHub：[opengoofy/hippo4j](https://github.com/opengoofy/hippo4j)

Gitee：[opengoofy/hippo4j](https://gitee.com/magestack/hippo4j)

For full documentation & more details, visit: [Docs](https://www.hippo4j.cn)

### 线程池痛点

---

线程池是一种基于池化思想管理线程的工具，使用线程池可以减少创建销毁线程的开销，避免线程过多导致系统资源耗尽。在高并发以及大批量的任务处理场景，线程池的使用是必不可少的。

如果有在项目中实际使用线程池，相信你可能会遇到以下痛点：

- 线程池随便定义，线程资源过多，造成服务器高负载。

- 线程池参数不易评估，随着业务的并发提升，业务面临出现故障的风险。
- 线程池任务执行时间超过平均执行周期，开发人员无法感知。
- 线程池任务堆积，触发拒绝策略，影响既有业务正常运行。
- 当业务出现超时、熔断等问题时，因为没有监控，无法确定是不是线程池引起。
- 原生线程池不支持运行时变量的传递，比如 MDC 上下文遇到线程池就 GG。
- 无法执行优雅关闭，当项目关闭时，大量正在运行的线程池任务被丢弃。
- 线程池运行中，任务执行停止，怀疑发生死锁或执行耗时操作，但是无从下手。

### 什么是 Hippo4j

---

提供以下功能支持：

- 全局管控 - 管理应用线程池实例。

- 动态变更 - 应用运行时动态变更线程池参数，包括但不限于：核心、最大线程数、阻塞队列容量、拒绝策略等。
- 通知报警 - 内置四种报警通知策略，线程池活跃度、容量水位、拒绝策略以及任务执行时间超长。
- 数据采集 - 支持多种方式采集线程池数据，包括但不限于：日志、内置采集、Prometheus、InfluxDB、ElasticSearch 等。
- 运行监控 - 实时查看线程池运行时数据，自定义时间内线程池运行数据图表展示。
- 功能扩展 - 支持线程池任务传递上下文；项目关闭时，支持等待线程池在指定时间内完成任务。
- 多种模式 - 内置两种使用模式：[依赖配置中心](https://hippo4j.cn/docs/user_docs/getting_started/config/hippo4j-config-start) 和 [无中间件依赖](https://hippo4j.cn/docs/user_docs/getting_started/server/hippo4j-server-start)。
- 容器管理 - Tomcat、Jetty、Undertow 容器线程池运行时查看和线程数变更。
- 框架适配 - Dubbo、Hystrix、RabbitMQ、RocketMQ 等消费线程池运行时数据查看和线程数变更。
- 变更审核 - 提供多种用户角色，普通用户变更线程池参数需要 Admin 用户审核方可生效。
- 动态化插件 - 内置多种线程池插件，支持用户自定义插件以及运行时扩展。
- 多版本适配 - 经过实际测试，已支持客户端 SpringBoot 1.5.x => 2.7.5 版本（更高版本未测试）。

### 架构设计

---

### 快速开始

---

对于本地演示目的，请参阅 [Quick start](https://hippo4j.cn/docs/user_docs/user_guide/quick-start)

演示环境： [http://console.hippo4j.cn/index.html](http://console.hippo4j.cn/index.html)

### 接入登记

---

更多接入的公司，欢迎在 [登记地址](https://github.com/opengoofy/hippo4j/issues/13) 登记，登记仅仅为了产品推广。

### 联系我

---

开源不易，右上角点个 Star 鼓励一下吧！

如果大家想要实时关注 Hippo4j 更新的文章以及分享的干货的话，可以关注我的公众号。

使用过程中有任何问题，或者对项目有什么建议，关注公众号回复：加群，和 `1000+` 志同道合的朋友交流讨论。

### 深入原理

---

如果您公司没有使用 Hippo4j 场景的话，我也建议去阅读下项目的底层原理，主要有以下几个原因：

- 为了提高代码质量以及后续的扩展行为，运用多种设计模式实现高内聚、低耦合。

- 框架底层依赖 Spring 框架运行，并在源码中大量使用 Spring 相关功能。
- 运用 JUC 并发包下多种工具保障多线程运行安全，通过实际场景理解并发编程。
- 借鉴主流开源框架 Nacos、Eureka 实现轻量级配置中心和注册中心功能。
- 自定义 RPC 框架实现，封装 Netty 完成客户端/服务端网络通信优化。
- 通过 CheckStyle、Spotless 等插件规范代码编写，保障高质量代码行为和代码样式。

### 友情链接

---

- [[ Sa-Token ]](https://github.com/dromara/sa-token)：一个轻量级 java 权限认证框架，让鉴权变得简单、优雅！

- [[ HertzBeat ]](https://github.com/dromara/hertzbeat)：易用友好的云监控系统, 无需 Agent, 强大自定义监控能力。
- [[ JavaGuide ]](https://github.com/Snailclimb/JavaGuide)：一份涵盖大部分 Java 程序员所需要掌握的核心知识。
- [[ toBeBetterJavaer ]](https://github.com/itwanger/toBeBetterJavaer)：一份通俗易懂、风趣幽默的 Java 学习指南。
- [[ Jpom ]](https://gitee.com/dromara/Jpom)：简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。
- [[ 12306 ]](https://gitee.com/nageoffer/12306)：完成高仿 12306 用户+抢票+订单+支付服务，帮助学生主打就业的项目。
- [[ CongoMall ]](https://gitee.com/nageoffer/congomall)：企业级商城，基于 DDD 领域驱动模型开发，包含商城业务和基础架构。

### 贡献者

---

感谢所有为项目作出贡献的开发者。如果有意贡献，参考 [good first issue](https://github.com/opengoofy/hippo4j/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)。

### 鸣谢

---

Hippo4j 社区收到 Jetbrains 多份 Licenses，并已分配项目 [活跃开发者](https://hippo4j.cn/community/team/)，非常感谢 Jetbrains 对开源社区的支持。

![JetBrains Logo (Main) logo](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg)


# AssertJ - Fluent Assertions for Java [![Maven Central](https://img.shields.io/maven-central/v/org.assertj/assertj-core.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22org.assertj%22%20AND%20a:%22assertj-core%22) [![Javadocs](http://www.javadoc.io/badge/org.assertj/assertj-core.svg)](http://www.javadoc.io/doc/org.assertj/assertj-core)

[![CI](https://github.com/assertj/assertj/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/assertj/assertj/actions/workflows/main.yml?query=branch%3Amain)
[![Cross-Version](https://github.com/assertj/assertj/actions/workflows/cross-version.yml/badge.svg?branch=main)](https://github.com/assertj/assertj/actions/workflows/cross-version.yml?query=branch%3Amain)
[![Binary Compatibility](https://github.com/assertj/assertj/actions/workflows/binary-compatibility.yml/badge.svg?branch=main)](https://github.com/assertj/assertj/actions/workflows/binary-compatibility.yml?query=branch%3Amain)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=joel-costigliola_assertj-core&metric=alert_status)](https://sonarcloud.io/dashboard?id=joel-costigliola_assertj-core)

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)

AssertJ provides a rich and intuitive set of strongly-typed assertions to use for unit testing (with JUnit, TestNG or any other test framework).

* [AssertJ's goals](#goals)
* [Quick start](https://assertj.github.io/doc/#assertj-core-quick-start)
* [Documentation](https://assertj.github.io/doc/#assertj-core)
* [Contributing](#contributing)

You can ask questions in [**stackoverflow (assertj tag)**](https://stackoverflow.com/questions/tagged/assertj?mixed=1) and make suggestions by simply creating an issue.

## AssertJ's goals

AssertJ's ambition is to provide a rich and intuitive set of strongly-typed assertions for unit testing.

The idea is that disposal assertions should be specific to the type of the objects we are checking when writing unit tests. If you're checking the value of a `String`, you use String-specific assertions. Checking the value of a `Map`? Use Map-specific assertions to easily check the contents of the map.

AssertJ's assertions are super easy to use: just type **`assertThat(underTest).`** and use code completion to show you all assertions available.

Assertion missing? Please [create an issue](https://github.com/assertj/assertj/issues) to discuss it and even better [contribute to the project](https://github.com/assertj/assertj/blob/main/CONTRIBUTING.md)!

AssertJ is composed of several modules:
* A **core module** to provide assertions for JDK types (`String`, `Iterable`, `Stream`, `Path`, `File`, `Map`...) - see [AssertJ Core documentation](https://assertj.github.io/doc/#assertj-core-assertions-guide) and [javadoc](https://www.javadoc.io/doc/org.assertj/assertj-core/latest/index.html).
* A **Guava module** to provide assertions for Guava types (`Multimap`, `Optional`...) - see [AssertJ Guava documentation](https://assertj.github.io/doc/#assertj-guava) and [javadoc](https://www.javadoc.io/doc/org.assertj/assertj-guava/latest/index.html).
* A **[Joda Time module](https://github.com/assertj/assertj-joda-time#readme)** to provide assertions for Joda Time types (`DateTime`, `LocalDateTime`) - see [AssertJ Joda Time documentation](http://joel-costigliola.github.io/assertj/assertj-joda-time.html) and  [javadoc](https://www.javadoc.io/doc/org.assertj/assertj-joda-time/latest/index.html).
* A **[Neo4J module](https://github.com/assertj/assertj-neo4j#readme)** to provide assertions for Neo4J types (`Path`, `Node`, `Relationship`...) - see [AssertJ Neo4J documentation](http://joel-costigliola.github.io/assertj/assertj-neo4j.html) and [javadoc](https://www.javadoc.io/doc/org.assertj/assertj-neo4j/latest/index.html).
* A **[DB module](https://github.com/assertj/assertj-db#readme)** to provide assertions for relational database types (`Table`, `Row`, `Column`...) - see [AssertJ DB documentation](https://assertj.github.io/doc/#assertj-db) and [javadoc](https://www.javadoc.io/doc/org.assertj/assertj-db/latest/index.html).
* A **[Swing module](https://github.com/assertj/assertj-swing#readme)** provides a simple and intuitive API for functional testing of Swing user interfaces - see [AssertJ Swing documentation](http://joel-costigliola.github.io/assertj/assertj-swing.html) and [javadoc](https://www.javadoc.io/doc/org.assertj/assertj-swing/latest/index.html).

## Want to contribute?

You are encouraged to contribute any missing useful assertions.

Please read the [contributing section](https://github.com/assertj/assertj/blob/main/CONTRIBUTING.md) and raise a PR!


# Immersive Portals Mod

It's a Minecraft mod that provides see-through portals and seamless teleportation. It also can create "Non-Euclidean" (Uneuclidean) space effect.

![immptl.png](https://i.loli.net/2021/09/30/chHMG45dsnZNqep.png)

[On CurseForge](https://www.curseforge.com/minecraft/mc-mods/immersive-portals-mod)     [On Modrinth](https://modrinth.com/mod/immersiveportals)     [Website](https://qouteall.fun/immptl/)

This mod changes a lot of underlying Minecraft mechanics. This mod allows the client to load multiple dimensions at the same time and synchronize remote world information(blocks/entities) to client. It can render portal-in-portals. The portal rendering is roughly compatible with some versions of Sodium and Iris. The portal can transform player scale and gravity direction.  [Implementation Details](https://qouteall.fun/immptl/wiki/Implementation-Details)

(This is the Fabric version of Immersive Portals. [The Forge version](https://github.com/iPortalTeam/ImmersivePortalsModForForge))

## API

This mod also provides some API for:

* Manage see-through portals
* Dynamically add dimensions
* Synchronize remote chunks to client
* Render the world into GUI
* Other utilities

[API description](https://qouteall.fun/immptl/wiki/API-for-Other-Mods.html).

## How to run this code
https://fabricmc.net/wiki/tutorial:setup

## Other

[Wiki](https://qouteall.fun/immptl/wiki/)

[Discord Server](https://discord.gg/BZxgURK)

[Support qouteall on Patreon](https://www.patreon.com/qouteall)


[![logo](logo.png)](https://babyfish-ct.github.io/jimmer/)

# A revolutionary ORM framework for both java and kotlin, and a complete integrated solution

## 1. Classic ORM part

### 1.1. Powerful features
![feature](./feature.svg)

### 1.2. Ultimate performance
![performance](./performance.jpg)

## 2. New ORM part

1. DTO language
2. A more comprehensive and powerful caching mechanism, as well as highly automated cache consistency
3. More powerful client openapi and typescript generation capabilities, including Jimmer's unique remote exceptions
4. Quickly create GraphQL services
5. Cross-microservice remote entity associations

## Links

English
中文

Examples

https://github.com/babyfish-ct/jimmer-examples

Dcoumentation

English Documentation

中文文档

Discussion
https://discord.gg/PmgR5mpY3E
QQ群：622853051


![CrazyCrates](https://raw.githubusercontent.com/Crazy-Crew/Branding/main/crazycrates/banner/webp/banner.webp)

[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
[![CodeFactor](https://www.codefactor.io/repository/github/crazy-crew/crazycrates/badge)](https://www.codefactor.io/repository/github/crazy-crew/crazycrates)

<big>**Create as many crates as you like with multiple crate types to pick from**</big>

### **Quick Links**
[Request Features](https://github.com/Crazy-Crew/CrazyCrates/issues)

[Documentation](https://docs.crazycrew.us/docs/category/crazycrates)

[Developer API](https://docs.crazycrew.us/docs/plugins/crazycrates/guides/api/intro)

[Report Bugs](https://github.com/Crazy-Crew/CrazyCrates/issues)

[Trello Board](https://trello.com/b/bzQ5TwXo/crazycrates)

### Supported Platforms
[![paper software](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/compact-minimal/supported/paper_vector.svg)](https://papermc.io/)
[![purpur software](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/compact-minimal/supported/purpur_vector.svg)](https://purpurmc.org/)

### **Initial Plugin Setup**
CrazyCrates as first install will come with a set of default files in the `crates` folder which are to help you figure out how to use the plugin.
You can simply create more crates by copying the files or creating new ones than doing `/crazycrates reload`

Testing your crates is even easier, if you simply want to test prizes. We have a command for that called `/crazycrates debug <crate>`

[![Partnered with ApexHosting](https://raw.githubusercontent.com/Crazy-Crew/Branding/main/apex-banner-transparent.webp)](https://billing.apexminecrafthosting.com/aff.php?aff=5511)

![Features Banner](https://raw.githubusercontent.com/Crazy-Crew/Branding/main/crazycrates/banner/webp/features.webp)

**The ability to customize the entirety of CrazyCrates along with PlaceholderAPI support everywhere**

If you have found something that you would like to be able to customize,

please make a [feature request,](https://github.com/Crazy-Crew/CrazyCrates/issues) and we'll see about adding it

**Create an infinite amount of crates**

Crates can be usable either through /crazycrates set while looking at a block or /crazycrates which opens a menu of current crates.

**MiniMessage Support**

Ability to use a wide variety of colors including easier ways to do gradients!

You can read more about it on [MiniMessage's wiki](https://docs.advntr.dev/minimessage/format.html)!

This tool will give you a live preview of colors and text: https://webui.advntr.dev/

**Per crate statistics on how many times a player has opened a crate.**

A list of placeholders to display the *statistics* can be found [here](https://docs.crazycrew.us/docs/plugins/crazycrates/guides/placeholders).

**Multiple crate types to choose from with unique animations or functions for each crate type.**

**Ability to add items to currently available crates, `/crazycrates additem` which takes the item in your hand and adds it to a crate.**

**Ability to add alternative prizes a player could win if they already won a previous prize**

**Ability to display or give custom items/custom heads using Oraxen, ItemsAdder or HeadDatabase**

**Ability to use physical or virtual crates or both**

![Support Banner](https://raw.githubusercontent.com/Crazy-Crew/Branding/main/crazycrates/banner/webp/support.webp)

Are you confused about something? Hop by the Discord and you might just get an answer!

Please head to [crazy-crates](https://discord.com/channels/182615261403283459/196107841449361408) with your question and do not cross post.

Support Checklist

Please check to make sure that your question wasn't asked before, You can use `Ctrl+F` on Discord to look for past conversations.

Describe your issue in detail, Don't just make it a bread crumb trail that has to be questioned out of you.

Plugin Version i.e. `CrazyCrates 3.3` **LATEST DOES NOT COUNT**

Server Version & Server Type i.e. `Paper 1.20.6` or `Purpur 1.20.6` **LATEST DOES NOT COUNT**

Send any console errors or files you have through https://mclo.gs/ - (We don't own the website, You have to copy the link and send it.)

[![Discord Invite Button](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/social/discord-plural_vector.svg)](https://discord.gg/badbones-s-live-chat-182615261403283459)

![CrazyCrates Statistics](https://bstats.org/signatures/bukkit/CrazyCrates.svg)

[contributors-shield]: https://img.shields.io/github/contributors/Crazy-Crew/CrazyCrates.svg?style=flat&logo=appveyor
[contributors-url]: https://github.com/Crazy-Crew/CrazyCrates/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/Crazy-Crew/CrazyCrates.svg?style=flat&logo=appveyor
[forks-url]: https://github.com/Crazy-Crew/CrazyCrates/network/members
[stars-shield]: https://img.shields.io/github/stars/Crazy-Crew/CrazyCrates.svg?style=flat&logo=appveyor
[stars-url]: https://github.com/Crazy-Crew/CrazyCrates/stargazers
[issues-shield]: https://img.shields.io/github/issues/Crazy-Crew/CrazyCrates.svg?style=flat&logo=appveyor
[issues-url]: https://github.com/Crazy-Crew/CrazyCrates/issues
[license-shield]: https://img.shields.io/github/license/Crazy-Crew/CrazyCrates.svg?style=flat&logo=appveyor
[license-url]: https://github.com/Crazy-Crew/CrazyCrates/blob/main/LICENSE


 [![Documentation](https://img.shields.io/badge/user-documentation-blue.svg)](https://deeplearning4j.konduit.ai/)
[![Get help at the community forum](https://img.shields.io/badge/Get%20Help-Community%20Forum-blue)](https://community.konduit.ai/)
[![javadoc](https://javadoc.io/badge2/org.deeplearning4j/deeplearning4j-nn/DL4J%20API%20Doc.svg)](https://javadoc.io/doc/org.deeplearning4j/deeplearning4j-nn)
[![javadoc](https://javadoc.io/badge2/org.nd4j/nd4j-api/ND4J%20API%20Doc.svg)](https://javadoc.io/doc/org.nd4j/nd4j-api)
[![License](https://img.shields.io/github/license/eclipse/deeplearning4j)](LICENSE)
![GitHub commit activity](https://img.shields.io/github/commit-activity/m/eclipse/deeplearning4j)

The **[Eclipse Deeplearning4J](https://deeplearning4j.konduit.ai/)** (DL4J) ecosystem is a set of projects intended to support all the needs of a JVM based deep learning application. This means starting with the raw data, loading and preprocessing it from wherever and whatever format it is in to building and tuning a wide variety of simple and complex deep learning networks.

Because Deeplearning4J runs on the JVM you can use it with a wide variety of JVM based languages other than Java, like Scala, Kotlin, Clojure and many more.

The DL4J stack comprises of:
- **DL4J**: High level API to build MultiLayerNetworks and ComputationGraphs with a variety of layers, including custom ones. Supports importing Keras models from h5, including tf.keras models (as of 1.0.0-beta7) and also supports distributed training on Apache Spark
- **ND4J**: General purpose linear algebra library with over 500 mathematical, linear algebra and deep learning operations. ND4J is based on the highly-optimized C++ codebase LibND4J that provides CPU (AVX2/512) and GPU (CUDA) support and acceleration by libraries such as OpenBLAS, OneDNN (MKL-DNN), cuDNN, cuBLAS, etc
- **SameDiff** : Part of the ND4J library, SameDiff is our automatic differentiation / deep learning framework. SameDiff uses a graph-based (define then run) approach, similar to TensorFlow graph mode. Eager graph (TensorFlow 2.x eager/PyTorch) graph execution is planned. SameDiff supports importing TensorFlow frozen model format .pb (protobuf) models. Import for ONNX, TensorFlow SavedModel and Keras models are planned. Deeplearning4j also has full SameDiff support for easily writing custom layers and loss functions.
- **DataVec**: ETL for machine learning data in a wide variety of formats and files (HDFS, Spark, Images, Video, Audio, CSV, Excel etc)
- **LibND4J** : C++ library that underpins everything. For more information on how the JVM acceses native arrays and operations refer to [JavaCPP](https://github.com/bytedeco/javacpp)
- **Python4J**: Bundled cpython execution for the JVM

All projects in the DL4J ecosystem support Windows, Linux and macOS. Hardware support includes CUDA GPUs (10.0, 10.1, 10.2 except OSX), x86 CPU (x86_64, avx2, avx512), ARM CPU (arm, arm64, armhf) and PowerPC (ppc64le).

## Community Support
For support for the project, please go over to https://community.konduit.ai/

## Using Eclipse Deeplearning4J in your project

Deeplearning4J has quite a few dependencies. For this reason we only support usage with a build tool.

```xml
<dependencies>
  <dependency>
      <groupId>org.deeplearning4j</groupId>
      <artifactId>deeplearning4j-core</artifactId>
      <version>1.0.0-M2.1</version>
  </dependency>
  <dependency>
      <groupId>org.nd4j</groupId>
      <artifactId>nd4j-native-platform</artifactId>
      <version>1.0.0-M2.1</version>
  </dependency>
</dependencies>
```

Add these dependencies to your pom.xml file to use Deeplearning4J with the CPU backend. A full standalone project example is [available in the example repository](https://github.com/eclipse/deeplearning4j-examples), if you want to start a new Maven project from scratch.

## Code samples

Due to DL4J being a multi faceted project
with several modules in the mono repo, we recommend looking at the examples
for a taste of different usages of the different modules. Below
we'll link to examples for each module.

1. ND4J: https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/nd4j-ndarray-examples
2. DL4J: https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/dl4j-examples
3. Samediff: https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/samediff-examples
4. Datavec: https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/data-pipeline-examples
5. Python4j: https://deeplearning4j.konduit.ai/python4j/tutorials/quickstart

For users looking for being able to run models from other frameworks, see:
1. Onnx: https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/onnx-import-examples
2. Tensorflow/Keras: https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/tensorflow-keras-import-examples

## Documentation, Guides and Tutorials
You can find the official documentation for Deeplearning4J and the other libraries of its ecosystem at http://deeplearning4j.konduit.ai/.

## Want some examples?
We have separate repository with various examples available: https://github.com/eclipse/deeplearning4j-examples

## Building from source
It is preferred to use the official pre-compiled releases (see above). But if you want to build from source, first take a look at the prerequisites for building from source here: https://deeplearning4j.konduit.ai/multi-project/how-to-guides/build-from-source. Various instructions for cpu and gpu builds can be found there. Please go to our [forums](https://community.konduit.ai/) for further help.

## Running tests

In order to run tests, please see the platform-tests module.
This module only runs on jdk 11 (mostly due to spark and bugs with older scala versions + JDK 17)

platform-tests allows you to run dl4j for different backends.
There are a few properties you can specify on the command line:
1. backend.artifactId: this defaults to nd4j-native and will run tests on cpu,you can specify other backends like nd4j-cuda-11.6
2. dl4j.version: You can change the dl4j version that the tests run against. This defaults to 1.0.0-SNAPSHOT.

More parameters can be found here:
https://github.com/deeplearning4j/deeplearning4j/blob/c1bf8717e4839c8930e9c43183bf7b94d0cf84dc/platform-tests/pom.xml#L47

## Running project in Intellij IDEA:
1. Ensure you follow https://stackoverflow.com/questions/45370178/exporting-a-package-from-system-module-is-not-allowed-with-release on jdk 9 or later
2. Ignore all nd4j-shade submodules. Right click on each folder and click: Maven -> Ignore project

## License

[Apache License 2.0](LICENSE)

## Commercial Support
Deeplearning4J is actively developed by the team at [Konduit K.K.](https://konduit.ai).

[If you need any commercial support feel free to reach out to us. at [support@konduit.ai](mailto:support@konduit.ai)


[![CrazyEnchantments](https://raw.githubusercontent.com/RyderBelserion/Assets/main/crazycrew/webp/CrazyEnchantmentsBanner.webp)](https://modrinth.com/plugin/crazyenchantments)

[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![GPU License][license-shield]][license-url]
[![Contact][discord-shield]][discord-url]
![CodeFactor][codefactor-shield]

![Paper](https://cdn.jsdelivr.net/gh/intergrav/devins-badges/assets/compact/supported/paper_vector.svg)
![Purpur](https://cdn.jsdelivr.net/gh/intergrav/devins-badges/assets/compact/supported/purpur_vector.svg)

    Adds over 80 unique enchantments to your server and more!

    Explore the docs »

    Report Bug
    ·
    Request Feature
    ·
    Get Support

  Table of Contents

      Getting Started

Prerequisites

Installation

Roadmap

Contributing

License

Contact

### Resource Page
[![Hangar](https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/compact/available/hangar_46h.png)](https://hangar.papermc.io/CrazyCrew/CrazyEnchantments)
[![Modrinth](https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/compact/available/modrinth_46h.png)](https://modrinth.com/plugin/crazyenchantments)

## Getting Started
How to get started with contributing / maintaining your own version of CrazyEnchantments!

### Prerequisites
A list of things necessary to make sure you can build CrazyEnchantments properly.
* Intellij IDEA
    * > https://www.jetbrains.com/idea/download/
* Gradle
* Java 21

### Installation
1. Clone the repo
   ```sh
   git clone https://github.com/Crazy-Crew/CrazyEnchantments.git
   ```
2. Open the repository using Intellij IDEA & wait until it finishes downloading/indexing.
3. Run the assemble task.
   ```gradle
   ./gradlew assemble
   ```
4. Open the `jars` directory in your root folder.
5. Profit!

## Roadmap
Check our public [trello board](https://trello.com/b/AJvEmcbL) for our current plans, any bugs and general tracking of the project progress.

## Support the Developers
TDL on:
* [Kofi](https://ko-fi.com/truedarklord)

Ryder Belserion on:
* [Github Sponsors](https://github.com/sponsors/ryderbelserion)
* [Kofi](https://ko-fi.com/ryderbelserion)

BadBones on:
* [Paypal](https://www.paypal.me/joewojcik/)

## License
Distributed under the MIT License. See [`LICENSE`](/LICENSE) for more information.

[discord-shield]: https://img.shields.io/discord/182615261403283459.svg?style=flat&logo=appveyor
[discord-url]: https://discord.gg/badbones-s-live-chat-182615261403283459

[contributors-shield]: https://img.shields.io/github/contributors/Crazy-Crew/CrazyEnchantments.svg?style=flat&logo=appveyor
[contributors-url]: https://github.com/Crazy-Crew/CrazyEnchantments/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/Crazy-Crew/CrazyEnchantments.svg?style=flat&logo=appveyor
[forks-url]: https://github.com/Crazy-Crew/CrazyEnchantments/network/members
[stars-shield]: https://img.shields.io/github/stars/Crazy-Crew/CrazyEnchantments.svg?style=flat&logo=appveyor
[stars-url]: https://github.com/Crazy-Crew/CrazyEnchantments/stargazers
[issues-shield]: https://img.shields.io/github/issues/Crazy-Crew/CrazyEnchantments.svg?style=flat&logo=appveyor
[issues-url]: https://github.com/Crazy-Crew/CrazyEnchantments/issues
[license-shield]: https://img.shields.io/github/license/Crazy-Crew/CrazyEnchantments.svg?style=flat&logo=appveyor
[license-url]: https://github.com/Crazy-Crew/CrazyEnchantments/blob/master/LICENSE

[codefactor-shield]: https://img.shields.io/codefactor/grade/github/crazy-crew/CrazyEnchantments/main?style=flat&logo=appveyor


# JFX-Central Data Repository

To add data to this repository, please follow these steps:

1. Fork the repository
2. Add your data
3. Submit a pull request for the `staging` branch

> Don't worry too much about breaking things. Unit tests are in place to verify
> the validity of the data. After those have passed your edits will be reviewed
> by a human being, yours truly. Once the review is done your pull request will
> be merged. Please be aware that there is no guarantee that the information provided
> by your pull request will appear immediately after merging. The website will be
> updated only when explicitly requested by an administrator.

## General Concepts

This repository contains the data for the following model objects:

- `Blog`
- `Book`
- `Company`
- `Download`
- `Library`
- `LinksOfTheWeek`
- `News`
- `Person`
- `RealWorldApp`
- `Tool`
- `Tutorial`
- `Utility`
- `Video`
- `Tip`

Instances of these types can be registered in JSON files in subdirectories that
match the types of the model objects:

- Blogs inside `blogs/blogs.json`
- Books inside `books/books.json`
- Companies inside `companies/companies.json`
- Downloads inside `downloads/downloads.json`
- Libraries inside `libraries/libraries.json`
- LinksOfTheWeek inside `links/links.json`
- News inside `news/news.json`
- People inside `people/people.json`
- Real World Applications inside `realworld/realworld.json`
- Tools inside `tools/tools.json`
- Tutorials inside `tutorials/tutorials.json`
- Utilities inside `utilities/utilities.json`
- Videos inside `videos/videos.json`
- Tips inside `tips/tips.json`

The design goal for these JSON files was to keep them as simple as possible. One can see that
a specific directory exists for each model object ***type***. Inside those directories one can find another
level of directories where each directory represents a model object ***instance***. The name of the
directory has to match the ID given to the ***instance*** inside the JSON index files. For example:
the book *"Pro JavaFX 9"* uses the ID `projfx9`. This means we can find a directory called
`books/projfx9`.

Inside most of these directories we can then find a file called `readme.md` which allows
you to add information (in markdown syntax) about the model object ***instance***. Depending on the
***type*** of the model object additional information (optional or required) might be needed.

### Linking

Any model object can be linked to any other model object of any type. The class ModelObject
contains the following fields that are common to all types:

```java
private String id; // the id == directory name
private LocalDate createdOn; // when was the entry initially added
private LocalDate modifiedOn; // when was it changed
private String tags; // some tags to enhance global search
private boolean hide; // maybe hide the entry for now

// Linking Options
private List<String> personIds = new ArrayList<>();
private List<String> tutorialIds = new ArrayList<>();
private List<String> toolIds = new ArrayList<>();
private List<String> libraryIds = new ArrayList<>();
private List<String> linksOfTheWeekIds = new ArrayList<>();
private List<String> bookIds = new ArrayList<>();
private List<String> companyIds = new ArrayList<>();
private List<String> downloadIds = new ArrayList<>();
private List<String> videoIds = new ArrayList<>();
private List<String> appIds = new ArrayList<>();
private List<String> utilityIds = new ArrayList<>();
private List<String> blogIds = new ArrayList<>();`
private List<String> tipIds = new ArrayList<>();`
```

Example: to link the library *FlexGanttFX* to the person *Dirk Lemmermann* we can add the following
fragment to the `libraries.json` file.

```json
{
    "id": "flexganttfx",
    "title": "FlexGanttFX",
    "personIds" : [
      "d.lemmermann"
    ]
}
```

To also add YouTube videos (those need to be registered inside `videos/videos.json`) to the library we can then write:

```json
{
    "id": "flexganttfx",
    "title": "FlexGanttFX",
    "personIds" : [
      "d.lemmermann"
    ],
    "videoIds": [
      "u09iklm65",
      "kl889abV8"
    ]
}
```

The other way around is also possible. We could add the library ID `flexganttfx` to the person
*Dirk Lemmermann* inside the file `people.json`.

```json
{
    "id": "d.lemmermann",
    "name": "Dirk Lemmermann",
    "libraryIds" : [
      "flexganttfx"
    ]
}
```

Ideally you take a look at the already existing data in those JSON files. They will pretty much
tell you what to do.

### Examples

Follow these instructions for the different types of data:

- [Adding a person](#adding-a-person)
- [Adding a library](#adding-a-library)

### Adding a Person

1. Add an entry to the file `people/people.json`, create a unique `ID` in the entry.
2. Create a new directory inside the `people` directory with the name equal to the `ID` field you created in the previous step (e.g.: ID = `d.lemmermann` -> `people/d.lemmermann`).
3. To the directory created in step 2: add an image file called `photo.jpeg` with the person's photo (ideally download the LinkedIn profile photo, it has the right format and size).
4. To the directory created in step 2: add a file called `readme.md` and add a short bio about the person (I copied the Twitter bios by default).
5. If the person entry inside the file `people/people.json` references other entities (for example a library) then make sure to also add those to the repository.

### Adding a Library

1. Add an entry to the file `libraries/libraries.json`, create a unique `ID` in the entry.
2. Create a new directory inside the `libraries` directory with the name equal to the `ID` field you created in the previous step (e.g.: ID = `controlsfx` -> `libraries/controlsfx`).
3. To the directory created in step 2: add an image file called `logo.png` with the library's icon (optional).
4. To the directory created in step 2: add a file called `readme.md` and add a "getting started" documentation or whatever you deem most important to know about the library.
5. To the directory created in step 2: add (or copy) the file `info.json` and list screenshots or videos (those also need to be in the same directory).
5. If the library entry inside the file `libraries/libraries.json` references other entities (for example a video or a tutorial) then make sure to also add those to the repository.

---


A magical framework that makes stream processing easier!

[![Stars](https://img.shields.io/github/stars/apache/streampark?style=for-the-badge&label=stars)](https://github.com/apache/incubator-streampark/stargazers)
[![Latest release](https://img.shields.io/github/v/release/apache/streampark.svg?style=for-the-badge&label=release)](https://github.com/apache/incubator-streampark/releases)
[![Total Downloads](https://img.shields.io/github/downloads/apache/streampark/total.svg?style=for-the-badge&label=downloads)](https://streampark.apache.org/download)
[![Twitter Follow](https://img.shields.io/twitter/follow/ASFStreamPark?label=follow&logo=x&style=for-the-badge)](https://twitter.com/ASFStreamPark)

**[Website](https://streampark.apache.org)**  |
**[Official Documentation](https://streampark.apache.org/docs/get-started/intro)**  |
**[FAQ](https://github.com/apache/incubator-streampark/issues/507)**

![](https://streampark.apache.org/image/dashboard-preview.png)

## 🚀 Abstract

----

Apache StreamPark™ is a stream processing development framework and application management platform.

> Apache StreamPark™ is a streaming application development framework. Aimed at ease building and managing streaming applications, StreamPark provides development framework for writing stream processing application with Apache Flink and Apache Spark, More other engines will be supported in the future. Also, StreamPark is a professional management platform for streaming application, including application development, debugging, interactive query, deployment, operation, maintenance, etc. It was initially known as StreamX and renamed to StreamPark in August 2022.

* Apache Flink & Apache Spark application development scaffold
* Support multiple versions of Apache Flink & Apache Spark
* Wide range of out-of-the-box connectors
* One-stop stream processing operation platform
* Support catalog、olap、streaming-warehouse etc.
* ...

## 🚀 QuickStart

- [Start with Docker](docker/README.md)
- [Start with Kubernetes](helm/README.md)

Click [Official Documentation](https://streampark.apache.org/docs/framework/quick-start) for more information

## 🔨 How to Build

```shell
git clone git@github.com:apache/incubator-streampark.git
cd incubator-streampark
./build.sh
```

🗄 Details:how to [Development](https://streampark.apache.org/docs/development/development)

## 🧑💻 Downloads

Download address for run-directly software package: https://streampark.apache.org/download

## 💋 Our users

Various companies and organizations use Apache StreamPark™ for research, production and commercial products. Are you using this project? [Welcome to add your company](https://github.com/apache/incubator-streampark/issues/163)!

![Our users](https://streampark.apache.org/image/users.png)

## 🤝 Contribution

[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/apache/incubator-streampark/pulls)

### 🙋 Submit Pull Request and Issues

You can submit any ideas as [pull requests](https://github.com/apache/incubator-streampark/pulls) or as [issues](https://github.com/apache/incubator-streampark/issues/new/choose).

> If you're new to posting issues, we ask that you read [*How To Ask Questions The Smart Way*](http://www.catb.org/~esr/faqs/smart-questions.html) (**This guide does not provide actual support services for this project!**), [How to Report Bugs Effectively](http://www.chiark.greenend.org.uk/~sgtatham/bugs.html) prior to posting. Well written bug reports help us help you!

### 🍻 How to Contribute

We welcome your suggestions, comments (including criticisms), comments and contributions. See [How to Contribute](https://streampark.apache.org/community/submit_guide/submit_code) and [Code Submission Guide](https://streampark.apache.org/community/submit_guide/code_style_and_quality_guide)

### 📤 Subscribe Mailing Lists
Mail List is the most recognized form of communication in Apache community. See how to [Join the Mailing Lists](https://streampark.apache.org/community/contribution_guide/mailing_lists)

Thank you to all the people who already contributed to Apache StreamPark™!

[![contrib graph](https://contrib.rocks/image?repo=apache/streampark)](https://github.com/apache/incubator-streampark/graphs/contributors)

## License

Licensed under the [Apache License, Version 2.0](LICENSE)

## 💬 Social Media

- [X (Twitter)](https://twitter.com/ASFStreamPark)
- [Zhihu](https://www.zhihu.com/people/streampark) (in Chinese)
- [bilibili](https://space.bilibili.com/455330087) (in Chinese)
- WeChat Official Account (in Chinese, scan the QR code to follow)


# 117 HD

GPU renderer with a suite of graphical enhancements.

# How to install it

- Download RuneLite from their website: https://runelite.net
- Launch RuneLite
- Click the Wrench icon on the top right of the RuneLite window
- Click the Plugin-Hub button on the right side near the top
- Search for "117 HD"
- Click Install

![Installation intruction gif](https://user-images.githubusercontent.com/72366279/223843005-6175c825-7f35-4bcb-84eb-882321a017f7.gif)

# Links
![discord](https://user-images.githubusercontent.com/5789682/173276137-8ea82e88-4ec1-444f-baf0-4b0dc171901f.png)
[Discord](https://discord.gg/U4p6ChjgSE) - Our Discord server.

🔌 [117HD](https://github.com/117HD/RLHD) - The plugin's source code.

🤖 [Discord-Bot](https://github.com/117HD/discord-bot) - Our Discord bot's source code.

# Links to the original author
![twitter](https://user-images.githubusercontent.com/5789682/173276125-347af1a5-e866-4770-97b2-7ebd3ab1aaa6.png)
[117's Twitter](https://twitter.com/117scape) - The original author's Twitter handle.

![patreon](https://user-images.githubusercontent.com/5789682/173276176-22dd9dcc-40c8-472b-9da2-455eebec296a.png)
[117's Patreon](https://www.patreon.com/RS_117) - If you wish to support the original author of the plugin.


# Helidon: Java Libraries for Microservices

Project Helidon is a set of Java Libraries for writing microservices.
Helidon supports two programming models:

* Helidon MP: [MicroProfile 6.0](https://github.com/eclipse/microprofile/releases/tag/6.0)
* Helidon SE: a small, functional style API

In either case your application is a Java SE program running on the
new Helidon Níma WebServer that has been written from the ground up to
use Java 21 Virtual Threads. With Helidon 4 you get the high throughput of a reactive server with the simplicity of thread-per-request style programming.

The Helidon SE API in Helidon 4 has changed significantly from Helidon 3. The use of virtual threads has enabled these APIs to change from asynchronous to blocking. This results in much simpler code that is easier to write, maintain, debug and understand. Earlier Helidon SE code will require modification to run on these new APIs. For more information see the [Helidon SE Upgrade Guide](https://helidon.io/docs/v4/#/se/guides/upgrade_4x).

Helidon 4 supports MicroProfile 6. This means your existing Helidon MP 3.x applications will run on Helidon 4 with only minor modifications. And since Helidon’s MicroProfile server is based on the new Níma WebServer you get all the benefits of running on virtual threads. For more information see the [Helidon MP Upgrade Guide](https://helidon.io/docs/v4/#/mp/guides/upgrade_4x).

New to Helidon? Then jump in and [get started](https://helidon.io/docs/v4/#/about/prerequisites).

Java 21 is required to use Helidon 4.

## License

Helidon is available under Apache License 2.0.

## Documentation

Latest documentation and javadocs are available at <https://helidon.io/docs/latest>.

Helidon White Paper is available [here](https://www.oracle.com/a/ocom/docs/technical-brief--helidon-report.pdf).

## Get Started

See Getting Started at <https://helidon.io>.

## Downloads / Accessing Binaries

There are no Helidon downloads. Just use our Maven releases (GroupID `io.helidon`).
See Getting Started at <https://helidon.io>.

## Helidon CLI

macOS:
```bash
curl -O https://helidon.io/cli/latest/darwin/helidon
chmod +x ./helidon
sudo mv ./helidon /usr/local/bin/
```

Linux:
```bash
curl -O https://helidon.io/cli/latest/linux/helidon
chmod +x ./helidon
sudo mv ./helidon /usr/local/bin/
```

Windows:
```bat
PowerShell -Command Invoke-WebRequest -Uri "https://helidon.io/cli/latest/windows/helidon.exe" -OutFile "C:\Windows\system32\helidon.exe"
```

See this [document](HELIDON-CLI.md) for more info.

## Build

You need JDK 21 to build Helidon 4.

You also need Maven. We recommend 3.8.0 or newer.

**Full build**
```bash
$ mvn install
```

**Checkstyle**
```bash
# cd to the component you want to check
$ mvn validate  -Pcheckstyle
```

**Copyright**

```bash
# cd to the component you want to check
$ mvn validate  -Pcopyright
```

**Spotbugs**

```bash
# cd to the component you want to check
$ mvn verify  -Pspotbugs
```

**Documentatonn**

```bash
# At the root of the project
$ mvn site
```

**Build Scripts**

Build scripts are located in `etc/scripts`. These are primarily used by our pipeline,
but a couple are handy to use on your desktop to verify your changes.

* `copyright.sh`: Run a full copyright check
* `checkstyle.sh`: Run a full style check

## Get Help

* See the [Helidon FAQ](https://github.com/oracle/helidon/wiki/FAQ)
* Ask questions on Stack Overflow using the [helidon tag](https://stackoverflow.com/tags/helidon)
* Join us on Slack: [#helidon-users](http://slack.helidon.io)

## Get Involved

* Learn how to [contribute](CONTRIBUTING.md)
* See [issues](https://github.com/oracle/helidon/issues) for issues you can help with

## Stay Informed

* Twitter: [@helidon_project](https://twitter.com/helidon_project)
* Blog: [Helidon on Medium](https://medium.com/helidon)


## About 🔥

- [**Drifty**](https://github.com/SaptarshiSarkar12/Drifty/) is an **open-source** interactive **File Downloader system** built using _Java_.
- It is both available in **Command-line Interface** (_CLI_) and **Graphical User Interface** (_GUI_) mode.

## Demo

See the video below to know how to use the application. For any help, you can open an [`issue`](https://github.com/SaptarshiSarkar12/Drifty/issues/new/choose/).

For **Batch Downloading** via **Drifty CLI**, the path to a YAML file has to be provided to it.
It should have the following structure :
```yaml
links: ["", ""] # [REQUIRED] - Links to the files to be downloaded
# Below parameters are OPTIONAL
fileNames: [""] # Will be auto-retrieved if not provided
# If the directory is not provided, the files will be downloaded in the default downloads folder.
directory: [""] # Use 'directory' when all the files to be downloaded in the same folder.
directories: [""] # Use 'directories' when the download folder is different for each of the files
```

### Drifty GUI

https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/aa7ea548-f312-4345-a053-d3ee13e67c8e

### Drifty CLI

https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/8a32ca07-1922-4c21-895d-44164bec9d76

## Tech Stack

The _Application_ **Drifty** is built using the following technologies :
- [Java](https://www.oracle.com/java/#rc30p1) - A programming language for building machine independent applications.

The [_Website_](https://saptarshisarkar12.github.io/Drifty/) of **Drifty** is built using the following technologies :
- [Next.js](https://nextjs.org/) - A JavaScript framework for building server-rendered React applications.
- [Tailwind CSS](https://tailwindcss.com/) - A utility-first CSS framework.

## Join the Drifty Testing Program 🚀

Drifty is released in _4 phases_, namely **Alpha**, **Beta**, **Release Candidate**, and **Stable**. If you want to test the unstable (**Alpha** or **Beta**) or the mostly stable versions (**Release Candidate**), you can download the executables for the respective phases from the [`Drifty website`](https://saptarshisarkar12.github.io/Drifty/) or try the Docker images for the respective phases.

If you find any issues during the testing period, please open an [`issue`](https://github.com/SaptarshiSarkar12/Drifty/issues/new/choose) or join our [`Discord Server`](https://discord.gg/DeT4jXPfkG) to share your feedback.

## Quickstart 🚀🚀

For **Users** :

### Using Drifty Application executable

1. Visit the [`Drifty website`](https://saptarshisarkar12.github.io/Drifty/)

    ![Homepage of Drifty Website](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/b3a63e16-7cb7-4ad9-b00e-ed4d4d690bd3)
2. Click on [`Download`](https://saptarshisarkar12.github.io/Drifty/#download)

    ![Download Button in Drifty Website pointed out](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/7b850e1c-a034-4085-ae25-9e5090891faa)
3. Choose the **Application Type** from the dropdown menu (_Default option is GUI_). To download _Drifty CLI_, select **CLI** and to download _Drifty GUI_, select **GUI**. Then, click on the **Download Now** button based on your Operating System (_Windows, Linux, macOS_). For **_Windows_** user, there is an MSI file available for **Drifty GUI**. You can click on the **_Prefer the msi?_** text to download the latest MSI file 🎉.

> [!TIP]
> If you want to test the unstable (**Alpha** or **Beta**) or the mostly stable versions (**Release Candidate**), you can click on the download button of the respective phase.

   ![Download Webpage of Drifty](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/9094cfaf-5283-434b-a154-431b9e699642)
4. Navigate to the Downloads folder and execute the downloaded file. If you are installing Drifty GUI, complete the steps in the macOS or Windows MSI installer wizard that appears on your screen.

5. Check out the [`Demo`](https://saptarshisarkar12.github.io/Drifty/#demo) section for examples of how to use the application.

6. If you like the project, please leave a [`star`](https://github.com/SaptarshiSarkar12/Drifty/stargazers) on GitHub.

7. For any issues or feature requests, you can join our [`Discord Server`](https://discord.gg/DeT4jXPfkG) and share your feedback.

### Using Drifty Application via Docker 🐋

> [!TIP]
> - To download files to a specific local directory, you need to mount that directory as a volume for Drifty.
> For example, if you want to download the file to your `home/username/Downloads` directory, then, you need to use the volume flag `-v /home/username/Downloads:/root/Downloads` with the docker command.
> - You can also mount `-v /home/username/.drifty:/root/.drifty` to enable the docker container to store Drifty's data in your local directory, which will make Drifty initialize much faster 🚀⚡.
> - For **Linux**, we recommend using **Docker Engine** directly instead of running images with **Docker Desktop**. To do this, add **_`sudo`_** before the docker commands.
> - If you want to try unstable (**Alpha** or **Beta**) [**_Alpha releases are not available as of now_**] or the mostly stable versions (**Release Candidate**) [**_Release Candidate releases are not available as of now_**], you need to use the respective docker image tags. For example, to use the **Beta** version of Drifty, you need to use the docker image tag `beta` like `ghcr.io/saptarshisarkar12/drifty-cli:beta` or `ghcr.io/saptarshisarkar12/drifty-gui:beta`.

> [!IMPORTANT]
> - To run Drifty GUI docker image, you need to do the following 👇
>     - For **Linux and Windows**, please run `xhost +local:docker` before running the GUI docker image.
>     - For **macOS**, please follow [these instructions](Docker/macOS%20Docker%20Build%20Instructions.md).

1. Pull the Docker image for Drifty using the below command -
    **For Drifty CLI**,
    ```bash
    docker pull ghcr.io/saptarshisarkar12/drifty-cli:master
    ```
    **For Drifty GUI**,
    ```bash
    docker pull ghcr.io/saptarshisarkar12/drifty-gui:master
    ```
2. Run the docker image using the below command -
    **For Drifty CLI**,
    ```bash
    docker run ghcr.io/saptarshisarkar12/drifty-cli:master
    ```
    **For Drifty GUI**,
    ```bash
    docker run -e DISPLAY=$DISPLAY --net=host -v /tmp/.X11-unix:/tmp/.X11-unix ghcr.io/saptarshisarkar12/drifty-gui:master
    ```
3. Drifty will open, and you can now use it 🎉!

For **Contributors** :
1. Go to the [`project link on GitHub`](https://github.com/SaptarshiSarkar12/Drifty), [**`fork`**](https://github.com/SaptarshiSarkar12/Drifty/fork) this repository and clone your fork into your local directory by running this command in your terminal.
    ```bash
    git clone git@github.com:SaptarshiSarkar12/Drifty.git
    ```
    ![Clone Drifty](https://user-images.githubusercontent.com/105960032/194497334-856c610e-39cd-4538-a998-18afb10dac04.gif)

2. Open an [`issue`](https://github.com/SaptarshiSarkar12/Drifty/issues/new/choose) ❕ describing the changes you want to make.

3. Make the changes in an IDE (preferably [`Intellij Idea`](https://www.jetbrains.com/idea/)) and open a Pull Request. Ensure that you have linked the issue to the Pull Request.
4. The Pull Request will be reviewed by the maintainers and merged if approved. ✔

5. Leave a [`star`](https://github.com/SaptarshiSarkar12/Drifty/stargazers) ⭐ on GitHub if you liked the project.

6. You may join our [`Discord Server`](https://discord.gg/DeT4jXPfkG) to discuss on the changes that you want to bring.

### Using Docker 🐋 for Development

> [!IMPORTANT]
> For **Linux and Windows**, please run `xhost +local:docker` before running the GUI docker image.
> For **macOS**, please follow [these instructions](Docker/macOS%20Docker%20Build%20Instructions.md) to run Drifty GUI docker image.

1. To start **Drifty GUI** and **Drifty CLI** with your modified source code, run `docker compose run gui` and `docker compose run cli` respectively.
2. The Drifty app will show up on the screen, and you can test it 🎉!

## Safety warning ⚠ while Downloading ⬇

![image](https://user-images.githubusercontent.com/58129377/193471489-87ee10a0-f719-47ef-9d46-e5b71c611d4b.png)

It is because Microsoft Defender could not verify it is safe as it is not commonly downloaded. Feel free to proceed with the following steps:
- Click on the three dots.
- Click on keep.

![image](https://user-images.githubusercontent.com/58129377/193471652-d88981c3-d903-406f-bc06-53cf77db9bf6.png)

- Click **`Show More`**.
- Click **`Keep anyway`**.

![image](https://user-images.githubusercontent.com/58129377/193471671-e047003c-95e7-43ed-8d37-d3f401b36164.png)

- Now it is downloaded, you can proceed.🎉

### Report the file as safe ✔

You can also provide your feedback to Microsoft Defender by reporting it to be Safe, by following the below steps:
- Click on three dots.
- Click on **`Report this file as safe`** instead of clicking on **`Keep`**.

![image](https://user-images.githubusercontent.com/58129377/193471838-63ba50ba-e303-48b4-b7c1-b71e6c0663e7.png)

- It will take you to **`Report a download`** page. You can provide your feedback there.😄

## Safety warning ⚠ while Installing

- For Windows, click on **More Info** and then **Run Anyway** as present in the screen below:
    |||
    |--|--|
    | ![Windows Defender - More Info screen](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/0470c61c-63b1-49bd-8662-2f9eac0e120b) | ![Windows Defender - Run Anyway screen](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/d07dc9b6-cdc3-48e1-8111-7062341b662d) |
- For macOS, click on **OK** and run `sudo spctl --master-disable` in your terminal to allow running unsigned apps. Try running Drifty again.

## Contributing to the project

- We welcome 🤝 your contributions to this Open-Source project.
- Please check the [**`Contributing Guidelines`**](https://github.com/SaptarshiSarkar12/Drifty/blob/master/CONTRIBUTING.md) and the [**`Roadmaps`**](https://github.com/users/SaptarshiSarkar12/projects/3) for ways to get involved.
- **You can also open an [`issue`](https://github.com/SaptarshiSarkar12/Drifty/issues/new/choose)** to report a bug 🐛, request a feature 💡, or suggest an improvement 📈.
- Please follow this project's [**`Code Of Conduct`**](https://github.com/SaptarshiSarkar12/Drifty/blob/master/CODE_OF_CONDUCT.md) to maintain a respectful and inclusive environment.
- Please note that this project uses [**`Semantic Versioning`**](https://semver.org/) for its releases.
- Join our [**`Discord Server`**](https://discord.gg/DeT4jXPfkG) to stay updated on this project and chat 💬 with the maintainer and the other contributors.

## Stats 📊

![Repo analysis](https://repobeats.axiom.co/api/embed/9b39d68e1ca7e9523e4454b352930d61109915a1.svg)

## Support 🙏

Please **leave a star ⭐** on this project to _support us_.

## Thanks to all the contributors ❤

[![Contributors' gallery at a glance](https://contrib.rocks/image?repo=SaptarshiSarkar12/Drifty&max=200)](https://github.com/SaptarshiSarkar12/Drifty/graphs/contributors)


[![Maven Central](https://maven-badges.herokuapp.com/maven-central/dev.sigstore/sigstore-java/badge.svg)](https://maven-badges.herokuapp.com/maven-central/dev.sigstore/sigstore-java)
[![javadoc](https://javadoc.io/badge2/dev.sigstore/sigstore-java/javadoc.svg)](https://javadoc.io/doc/dev.sigstore/sigstore-java)
[![CI](https://github.com/sigstore/sigstore-java/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/sigstore/sigstore-java/actions/workflows/ci.yaml)

# sigstore-java
A sigstore java client for interacting with sigstore infrastructure

⚠ This project is not ready for general-purpose use! ⚠

This project requires a minimum of Java 11 and is current in pre-release,
apis and dependencies are likely to change

You can files issues directly on this project or if you have any questions
message us on the [sigstore#java](https://sigstore.slack.com/archives/C03239XUL92) slack channel

## Usage

### Keyless Signing And Verification

#### Signing
```java
Path testArtifact = Paths.get("path/to/my/file.jar")

var signer = KeylessSigner.builder().sigstorePublicDefaults().build();
Bundle result = signer.signFile(testArtifact);

// sigstore bundle format (serialized as <artifact>.sigstore.json)
String bundleJson = result.toJson();
```

#### Verification

##### Read bundle
```java
Path bundleFile = // java.nio.Path to a .sigstore.json signature bundle file
Bundle bundle = Bundle.from(Files.newBufferedReader(bundleFile, StandardCharsets.UTF_8));
```

##### Configure verification options
```java
// add certificate policy to verify the identity of the signer
VerificationOptions verificationOptions =
    VerificationOptions.builder()
        .addCertificateIdentities(
            CertificateIdentity.builder()
                .issuer("https://accounts.example.com"))
                .subjectAlternativeName("test@example.com")
                .build())
        .build();
```

##### Do verification
```java
Path artifact = // java.nio.Path to artifact file
try {
  var verifier = new KeylessVerifier.builder().sigstorePublicDefaults().build();
  verifier.verify(artifact, bundle, verificationOptions);
  // verification passed!
} catch (KeylessVerificationException e) {
  // verification failed
}
```

### Exploring the API

The public stable API is limited to `dev.sigstore.KeylessSigner`(https://javadoc.io/doc/dev.sigstore/sigstore-java/latest/dev/sigstore/KeylessSigner.html) and `dev.sigstore.KeylessVerifier`(https://javadoc.io/doc/dev.sigstore/sigstore-java/latest/dev/sigstore/KeylessVerifier.html) and the classes exposed by those APIs. Other classes in the library are subject to change without notice.

You can browse Javadoc at https://javadoc.io/doc/dev.sigstore/sigstore-java.

To build javadoc from the sources, use the following command:

```sh
$ ./gradlew javadoc
$ "my-favorite-browser" ./sigstore-java/build/docs/javadoc/index.html
```