uranusjr commented on code in PR #65956: URL: https://github.com/apache/airflow/pull/65956#discussion_r3322927001
########## java-sdk/README.md: ########## @@ -0,0 +1,101 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + --> + +# Airflow Java SDK + +A **JVM** SDK for Apache Airflow. You can use any JVM-compatible language to write +workflow bundles, and have Airflow consume the result. + +The SDK and execution-time logic is implemented in Kotlin. +An example is bundled showing how the SDK can be used in Java. + +## Building the SDK + +```bash +./gradlew build +``` + +## Running the example + +* Put the [DAG with stub tasks](./dags) to somewhere Airflow can find. + +* Ensure the `java` command is available in the same environment the Airflow + task worker is in. + +* Package the example and its dependencies into JARs in + `./example/build/install/example/lib` + + ```bash + ./gradlew :example:installDist + ``` + +* Configure Airflow to route tasks in the *java* queue to be run with Java: + + ```bash + export AIRFLOW__SDK__COORDINATORS='{ + "java": { + "classpath": "airflow.sdk.coordinators.java.JavaCoordinator", + "kwargs": {"jars_root": ["/opt/airflow/java-sdk/example/build/install/example/lib"]} + } + }' + export AIRFLOW__SDK__QUEUE_TO_COORDINATOR='{"java": "java"}' Review Comment: This is just the readme so I want to keep things as simple as possible. The documentation (to come later) and ADRs describe this better. (Note that the README is not for end users but Airflow contributors.) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
