You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@seatunnel.apache.org by GitBox <gi...@apache.org> on 2022/01/12 05:01:53 UTC

[GitHub] [incubator-seatunnel] an-shi-chi-fan opened a new pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

an-shi-chi-fan opened a new pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028


   <!--
   
   Thank you for contributing to SeaTunnel! Please make sure that your code changes
   are covered with tests. And in case of new features or big changes
   remember to adjust the documentation.
   
   Feel free to ping committers for the review!
   
   ## Contribution Checklist
   
     - Make sure that the pull request corresponds to a [GITHUB issue](https://github.com/apache/incubator-seatunnel/issues).
   
     - Name the pull request in the form "[SeaTunnel #XXXX] [component] Title of the pull request", where *SeaTunnel #XXXX* should be replaced by the actual issue number.
   
     - Minor fixes should be named following this pattern: `[hotfix] [docs] Fix typo in README.md doc`.
   
   -->
   
   ## Purpose of this pull request
   
   <!-- Describe the purpose of this pull request. For example: This pull request adds checkstyle plugin.-->
   
   add neo4j source
   
   ## Check list
   
   * [ ] Code changed are covered with tests, or it does not need tests for reason:
   * [ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/incubator-seatunnel/tree/dev/docs
   


-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] CalvinKirs commented on pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
CalvinKirs commented on pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#issuecomment-1011006317


   Sorry, I will close this PR first. Thanks again for your contribution.


-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] an-shi-chi-fan commented on pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
an-shi-chi-fan commented on pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#issuecomment-1011021295


   i had check it before i am writing code , this jar  was on Apache-2.0 License.


-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] an-shi-chi-fan commented on a change in pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
an-shi-chi-fan commented on a change in pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#discussion_r783817739



##########
File path: seatunnel-connectors/seatunnel-connector-spark-neo4j/src/main/scala/org/apache/seatunnel/spark/source/Neo4j.scala
##########
@@ -0,0 +1,66 @@
+/*
+ * 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.
+ */
+
+package org.apache.seatunnel.spark.source
+
+import org.apache.seatunnel.common.config.CheckResult
+import org.apache.seatunnel.spark.SparkEnvironment
+import org.apache.seatunnel.spark.batch.SparkBatchSource
+import org.apache.spark.sql.{DataFrameReader, Dataset, Row}
+
+import scala.collection.JavaConverters._
+import scala.collection.mutable
+
+class Neo4j extends SparkBatchSource {
+
+  val neo4jConf: mutable.Map[String, String] = mutable.Map()
+  val readFormatter: String = "org.neo4j.spark.DataSource"
+  val mustConfiguredAll: Array[String] = Array("result_table_name", "url")
+  val mustConfiguredOne: Array[String] = Array("query", "labels", "relationship")
+
+
+  override def getData(env: SparkEnvironment): Dataset[Row] = {
+    val read: DataFrameReader = env.getSparkSession.read
+    read.format(readFormatter)
+    neo4jConf.foreach(it => {
+      read.option(it._1, it._2)
+    })
+    read.load()
+
+  }
+
+  override def checkConfig(): CheckResult = {
+
+    val notConfigMustAllParam: Array[String] = mustConfiguredAll.filter(item => !config.hasPath(item))
+    val notConfigMustOneParam: Array[String] = mustConfiguredOne.filter(item => !config.hasPath(item))
+    val isConfiguredOne: Boolean = notConfigMustOneParam.size < mustConfiguredOne.size
+
+    if (notConfigMustAllParam.isEmpty && isConfiguredOne) {
+      new CheckResult(true, "neo4j config is enough")
+    } else {
+      new CheckResult(false, s"neo4j config is not enough please check config [${notConfigMustAllParam.mkString(" ")}] " +
+        s"${if (!isConfiguredOne) "you must have one of " + mustConfiguredOne.mkString(" ") else ""}")

Review comment:
       ```
    val mustConfiguredAll: Array[String] = Array("result_table_name", "url")
     val mustConfiguredOne: Array[String] = Array("query", "labels", "relationship")
   ```
   query、 labels、relationship, user config one of it is enough




-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] RickyHuo commented on a change in pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
RickyHuo commented on a change in pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#discussion_r784770165



##########
File path: seatunnel-connectors/seatunnel-connector-spark-neo4j/src/main/scala/org/apache/seatunnel/spark/source/Neo4j.scala
##########
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+package org.apache.seatunnel.spark.source
+
+import org.apache.seatunnel.common.config.{CheckConfigUtil, CheckResult}
+import org.apache.seatunnel.spark.SparkEnvironment
+import org.apache.seatunnel.spark.batch.SparkBatchSource
+import org.apache.spark.sql.{DataFrameReader, Dataset, Row}
+
+import scala.collection.JavaConverters._
+import scala.collection.mutable
+
+class Neo4j extends SparkBatchSource {
+
+  val neo4jConf: mutable.Map[String, String] = mutable.Map()
+  val readFormatter: String = "org.neo4j.spark.DataSource"
+
+
+  override def getData(env: SparkEnvironment): Dataset[Row] = {
+    val read: DataFrameReader = env.getSparkSession.read
+    read.format(readFormatter)
+    neo4jConf.foreach(it => {
+      read.option(it._1, it._2)
+    })
+    read.load()
+
+  }
+
+  override def checkConfig(): CheckResult = {
+
+    val checkALL: CheckResult = CheckConfigUtil.checkOne(config, "query", "labels", "relationship")
+    val checkOne: CheckResult = CheckConfigUtil.check(config, "result_table_name", "url")
+    CheckConfigUtil.mergeCheckMessage(checkALL, checkOne);
+
+  }
+
+  override def prepare(prepareEnv: SparkEnvironment): Unit = {
+    config.entrySet().asScala.foreach(entry => {
+      neo4jConf.put(entry.getKey.replaceAll(raw"_", raw"."), config.getString(entry.getKey))

Review comment:
       we can use '.' directly, such as `schema.flatten.limit`




-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] an-shi-chi-fan commented on a change in pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
an-shi-chi-fan commented on a change in pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#discussion_r783637949



##########
File path: seatunnel-connectors/seatunnel-connector-spark-neo4j/src/main/scala/org/apache/seatunnel/spark/source/Neo4j.scala
##########
@@ -0,0 +1,66 @@
+/*
+ * 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.
+ */
+
+package org.apache.seatunnel.spark.source
+
+import org.apache.seatunnel.common.config.CheckResult
+import org.apache.seatunnel.spark.SparkEnvironment
+import org.apache.seatunnel.spark.batch.SparkBatchSource
+import org.apache.spark.sql.{DataFrameReader, Dataset, Row}
+
+import scala.collection.JavaConverters._
+import scala.collection.mutable
+
+class Neo4j extends SparkBatchSource {
+
+  val neo4jConf: mutable.Map[String, String] = mutable.Map()
+  val readFormatter: String = "org.neo4j.spark.DataSource"
+  val mustConfiguredAll: Array[String] = Array("result_table_name", "url")
+  val mustConfiguredOne: Array[String] = Array("query", "labels", "relationship")
+
+
+  override def getData(env: SparkEnvironment): Dataset[Row] = {
+    val read: DataFrameReader = env.getSparkSession.read
+    read.format(readFormatter)
+    neo4jConf.foreach(it => {
+      read.option(it._1, it._2)
+    })
+    read.load()
+
+  }
+
+  override def checkConfig(): CheckResult = {
+
+    val notConfigMustAllParam: Array[String] = mustConfiguredAll.filter(item => !config.hasPath(item))
+    val notConfigMustOneParam: Array[String] = mustConfiguredOne.filter(item => !config.hasPath(item))
+    val isConfiguredOne: Boolean = notConfigMustOneParam.size < mustConfiguredOne.size
+
+    if (notConfigMustAllParam.isEmpty && isConfiguredOne) {
+      new CheckResult(true, "neo4j config is enough")
+    } else {
+      new CheckResult(false, s"neo4j config is not enough please check config [${notConfigMustAllParam.mkString(" ")}] " +
+        s"${if (!isConfiguredOne) "you must have one of " + mustConfiguredOne.mkString(" ") else ""}")

Review comment:
       this is already public `CheckResult` class, just message is too long, i will change it's style




-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] CalvinKirs commented on a change in pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
CalvinKirs commented on a change in pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#discussion_r783063571



##########
File path: seatunnel-connectors/seatunnel-connector-spark-neo4j/pom.xml
##########
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>seatunnel-connectors</artifactId>
+        <groupId>org.apache.seatunnel</groupId>
+        <version>2.0.5-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>seatunnel-connector-spark-neo4j</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.seatunnel</groupId>
+            <artifactId>seatunnel-api-spark</artifactId>
+            <version>${project.version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.spark</groupId>
+            <artifactId>spark-core_${scala.binary.version}</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.spark</groupId>
+            <artifactId>spark-sql_${scala.binary.version}</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.spark</groupId>
+            <artifactId>spark-streaming_${scala.binary.version}</artifactId>
+        </dependency>
+
+        <!-- list of neo4j dependencies -->
+        <dependency>
+            <groupId>org.neo4j</groupId>
+            <artifactId>neo4j-connector-apache-spark_${scala.binary.version}</artifactId>
+            <version>4.1.0_for_spark_${spark.binary.version}</version>

Review comment:
       hi, the version number needs to be uniformly declared in the root pom




-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] wuchunfu commented on a change in pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
wuchunfu commented on a change in pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#discussion_r784565728



##########
File path: docs/en/configuration/source-plugins/neo4j.md
##########
@@ -0,0 +1,133 @@
+# Source plugin: Neo4j [Spark]
+
+## Description
+
+Read data from Neo4j.
+
+Neo4j Connector for Apache Spark allows you to read data from Neo4j in 3 different ways: by node labels, by relationship name, and by direct Cypher query.
+
+for detail neo4j config message please visit [neo4j doc](#https://neo4j.com/docs/spark/current/reading/) 
+
+## Options
+
+| name                                                                     | type   | required | default value |
+| -------------------------------------------------------------------------| ------ | -------- | ------------- |
+| [result_table_name](#result_table_name-string)                           | string | yes      | -             |
+| [authentication_type](#authentication_type-string)                       | string | no       | -             |
+| [authentication_basic_username](#authentication_basic_username-string)   | string | no       | -             |
+| [authentication_basic_password](#authentication_basic_password-string)   | string | no       | -             |
+| [url](#url-string)                                                       | string | yes      | -             |
+| [query](#query-string)                                                   | string | yes*     | -             |
+| [labels](#labels-string)                                                 | string | yes*     | -             |
+| [relationship](#relationship-string)                                     | string | yes*     | -             |
+| [schema_flatten_limit](#schema_flatten_limit-string)                     | string | no       | -             |
+| [schema_strategy](#schema_strategy-string)                               | string | no       | -             |
+| [pushdown_filters_enabled](#pushdown_filters_enabled-string)             | string | no       | -             |
+| [pushdown_columns_enabled](#pushdown_columns_enabled-string)             | string | no       | -             |
+| [partitions](#partitions-string)                                         | string | no       | -             |
+| [query_count](#query_count-string)                                       | string | no       | -             |
+| [relationship_nodes_map](#relationship_nodes_map-string)                 | string | no       | -             |
+| [relationship_source_labels](#relationship_source_labels-string)         | string | Yes      | -             |
+| [relationship_target_labels](#relationship_target_labels-string)         | string | Yes      | -             |
+
+### result_table_name [string]
+
+result table name
+
+### authentication_type [string]
+
+authentication type
+
+### authentication_basic_username [string]
+
+username
+
+### authentication_basic_password [string]
+
+password
+
+### url [string]
+url 
+
+### query [string]
+
+Cypher query to read the data
+
+### labels [string]
+
+List of node labels separated by :. The first label will be the primary label
+
+### relationship [string]
+
+Name of a relationship
+
+### schema_flatten_limit [string]
+Number of records to be used to create the Schema (only if APOC are not installed)
+
+### schema_strategy [string]
+
+Strategy used by the connector in order to compute the Schema definition for the Dataset. Possibile values are string, sample. When string it coerces all the properties to String otherwise it will try to sample the Neo4j’s dataset.
+
+### pushdown_filters_enabled [string]
+
+Enable or disable the Push Down Filters support
+
+### pushdown_columns_enabled [string]
+
+Enable or disable the Push Down Column support
+
+### partitions [string]
+
+This defines the parallelization level while pulling data from Neo4j.
+
+Note: as more parallelization does not mean more performances so please tune wisely in according to your Neo4j installation.
+
+### query_count [string]
+
+Query count, used only in combination with query option, it’s a query that returns a count field like the following:
+
+MATCH (p:Person)-[r:BOUGHT]->(pr:Product)
+WHERE pr.name = 'An Awesome Product'
+RETURN count(p) AS count
+or a simple number that represents the amount of records returned by query. Consider that the number passed by this value represent the volume of the data pulled of Neo4j, so please use it carefully.
+
+### relationship_nodes_map [string]
+
+
+If true return source and target nodes as Map<String, String>, otherwise we flatten the properties by returning every single node property as column prefixed by source or target
+
+### relationship_source_labels [string]
+
+List of source node Labels separated by :
+
+### relationship_target_labels [string]
+
+List of target node Labels separated by :
+
+## Example
+
+```bash
+   Neo4j {
+      result_table_name = "test"
+      authentication_type = "basic"
+      authentication_basic_username = "test"
+      authentication_basic_password = "test"
+      url = "bolt://localhost:7687"
+      labels = "Person"
+      #query = "MATCH (n1)-[r]->(n2) RETURN r, n1, n2 "
+   }

Review comment:
       This example does not match the required options described in `Options` above




-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] CalvinKirs commented on pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
CalvinKirs commented on pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#issuecomment-1011031822


   sorry, I read the wrong repository.
   This is my rough check result
   Apache XBean :: ASM 6 shaded (repackaged)
   
   From: 'OW2' (http://www.ow2.org/)
     - asm (http://asm.ow2.org/) org.ow2.asm:asm:jar:6.2.1
       License: BSD  (http://asm.ow2.org/license.html)
     - asm-analysis (http://asm.ow2.org/) org.ow2.asm:asm-analysis:jar:6.2.1
       License: BSD  (http://asm.ow2.org/license.html)
     - asm-commons (http://asm.ow2.org/) org.ow2.asm:asm-commons:jar:6.2.1
       License: BSD  (http://asm.ow2.org/license.html)
     - asm-tree (http://asm.ow2.org/) org.ow2.asm:asm-tree:jar:6.2.1
       License: BSD  (http://asm.ow2.org/license.html)
   
   From: 'The Apache Software Foundation' (http://www.apache.org)
     - Apache XBean :: ASM Util (http://geronimo.apache.org/maven/xbean/4.10/xbean-asm-util) org.apache.xbean:xbean-asm-util:bundle:4.10
       License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
   


-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] an-shi-chi-fan commented on a change in pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
an-shi-chi-fan commented on a change in pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#discussion_r783000366



##########
File path: docs/en/configuration/source-plugins/neo4j.md
##########
@@ -0,0 +1,133 @@
+# Source plugin: Neo4j
+

Review comment:
       it was fixed




-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] an-shi-chi-fan commented on a change in pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
an-shi-chi-fan commented on a change in pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#discussion_r784758799



##########
File path: docs/en/configuration/source-plugins/neo4j.md
##########
@@ -0,0 +1,133 @@
+# Source plugin: Neo4j [Spark]
+
+## Description
+
+Read data from Neo4j.
+
+Neo4j Connector for Apache Spark allows you to read data from Neo4j in 3 different ways: by node labels, by relationship name, and by direct Cypher query.
+
+for detail neo4j config message please visit [neo4j doc](#https://neo4j.com/docs/spark/current/reading/) 
+
+## Options
+
+| name                                                                     | type   | required | default value |
+| -------------------------------------------------------------------------| ------ | -------- | ------------- |
+| [result_table_name](#result_table_name-string)                           | string | yes      | -             |
+| [authentication_type](#authentication_type-string)                       | string | no       | -             |
+| [authentication_basic_username](#authentication_basic_username-string)   | string | no       | -             |
+| [authentication_basic_password](#authentication_basic_password-string)   | string | no       | -             |
+| [url](#url-string)                                                       | string | yes      | -             |
+| [query](#query-string)                                                   | string | yes*     | -             |
+| [labels](#labels-string)                                                 | string | yes*     | -             |
+| [relationship](#relationship-string)                                     | string | yes*     | -             |
+| [schema_flatten_limit](#schema_flatten_limit-string)                     | string | no       | -             |
+| [schema_strategy](#schema_strategy-string)                               | string | no       | -             |
+| [pushdown_filters_enabled](#pushdown_filters_enabled-string)             | string | no       | -             |
+| [pushdown_columns_enabled](#pushdown_columns_enabled-string)             | string | no       | -             |
+| [partitions](#partitions-string)                                         | string | no       | -             |
+| [query_count](#query_count-string)                                       | string | no       | -             |
+| [relationship_nodes_map](#relationship_nodes_map-string)                 | string | no       | -             |
+| [relationship_source_labels](#relationship_source_labels-string)         | string | Yes      | -             |
+| [relationship_target_labels](#relationship_target_labels-string)         | string | Yes      | -             |
+
+### result_table_name [string]
+
+result table name
+
+### authentication_type [string]
+
+authentication type
+
+### authentication_basic_username [string]
+
+username
+
+### authentication_basic_password [string]
+
+password
+
+### url [string]
+url 
+
+### query [string]
+
+Cypher query to read the data
+
+### labels [string]
+
+List of node labels separated by :. The first label will be the primary label
+
+### relationship [string]
+
+Name of a relationship
+
+### schema_flatten_limit [string]
+Number of records to be used to create the Schema (only if APOC are not installed)
+
+### schema_strategy [string]
+
+Strategy used by the connector in order to compute the Schema definition for the Dataset. Possibile values are string, sample. When string it coerces all the properties to String otherwise it will try to sample the Neo4j’s dataset.
+
+### pushdown_filters_enabled [string]
+
+Enable or disable the Push Down Filters support
+
+### pushdown_columns_enabled [string]
+
+Enable or disable the Push Down Column support
+
+### partitions [string]
+
+This defines the parallelization level while pulling data from Neo4j.
+
+Note: as more parallelization does not mean more performances so please tune wisely in according to your Neo4j installation.
+
+### query_count [string]
+
+Query count, used only in combination with query option, it’s a query that returns a count field like the following:
+
+MATCH (p:Person)-[r:BOUGHT]->(pr:Product)
+WHERE pr.name = 'An Awesome Product'
+RETURN count(p) AS count
+or a simple number that represents the amount of records returned by query. Consider that the number passed by this value represent the volume of the data pulled of Neo4j, so please use it carefully.
+
+### relationship_nodes_map [string]
+
+
+If true return source and target nodes as Map<String, String>, otherwise we flatten the properties by returning every single node property as column prefixed by source or target
+
+### relationship_source_labels [string]
+
+List of source node Labels separated by :
+
+### relationship_target_labels [string]
+
+List of target node Labels separated by :
+
+## Example
+
+```bash
+   Neo4j {
+      result_table_name = "test"
+      authentication_type = "basic"
+      authentication_basic_username = "test"
+      authentication_basic_password = "test"
+      url = "bolt://localhost:7687"
+      labels = "Person"
+      #query = "MATCH (n1)-[r]->(n2) RETURN r, n1, n2 "
+   }

Review comment:
       it was match yes* means you can choose one of it, not all yes* must configured




-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] an-shi-chi-fan commented on a change in pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
an-shi-chi-fan commented on a change in pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#discussion_r783815349



##########
File path: seatunnel-connectors/seatunnel-connector-spark-neo4j/src/main/scala/org/apache/seatunnel/spark/source/Neo4j.scala
##########
@@ -0,0 +1,66 @@
+/*
+ * 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.
+ */
+
+package org.apache.seatunnel.spark.source
+
+import org.apache.seatunnel.common.config.CheckResult
+import org.apache.seatunnel.spark.SparkEnvironment
+import org.apache.seatunnel.spark.batch.SparkBatchSource
+import org.apache.spark.sql.{DataFrameReader, Dataset, Row}
+
+import scala.collection.JavaConverters._
+import scala.collection.mutable
+
+class Neo4j extends SparkBatchSource {
+
+  val neo4jConf: mutable.Map[String, String] = mutable.Map()
+  val readFormatter: String = "org.neo4j.spark.DataSource"
+  val mustConfiguredAll: Array[String] = Array("result_table_name", "url")
+  val mustConfiguredOne: Array[String] = Array("query", "labels", "relationship")
+
+
+  override def getData(env: SparkEnvironment): Dataset[Row] = {
+    val read: DataFrameReader = env.getSparkSession.read
+    read.format(readFormatter)
+    neo4jConf.foreach(it => {
+      read.option(it._1, it._2)
+    })
+    read.load()
+
+  }
+
+  override def checkConfig(): CheckResult = {
+
+    val notConfigMustAllParam: Array[String] = mustConfiguredAll.filter(item => !config.hasPath(item))
+    val notConfigMustOneParam: Array[String] = mustConfiguredOne.filter(item => !config.hasPath(item))
+    val isConfiguredOne: Boolean = notConfigMustOneParam.size < mustConfiguredOne.size
+
+    if (notConfigMustAllParam.isEmpty && isConfiguredOne) {
+      new CheckResult(true, "neo4j config is enough")
+    } else {
+      new CheckResult(false, s"neo4j config is not enough please check config [${notConfigMustAllParam.mkString(" ")}] " +
+        s"${if (!isConfiguredOne) "you must have one of " + mustConfiguredOne.mkString(" ") else ""}")

Review comment:
       i have seen it, this tool is need check all of the param, but i have some param thar user must config one not all. so i do not use it.  @CalvinKirs 




-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] an-shi-chi-fan commented on pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
an-shi-chi-fan commented on pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#issuecomment-1012139912


   @wuchunfu @CalvinKirs CC


-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] CalvinKirs commented on a change in pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
CalvinKirs commented on a change in pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#discussion_r783067529



##########
File path: seatunnel-connectors/seatunnel-connector-spark-neo4j/src/main/scala/org/apache/seatunnel/spark/source/Neo4j.scala
##########
@@ -0,0 +1,66 @@
+/*
+ * 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.
+ */
+
+package org.apache.seatunnel.spark.source
+
+import org.apache.seatunnel.common.config.CheckResult
+import org.apache.seatunnel.spark.SparkEnvironment
+import org.apache.seatunnel.spark.batch.SparkBatchSource
+import org.apache.spark.sql.{DataFrameReader, Dataset, Row}
+
+import scala.collection.JavaConverters._
+import scala.collection.mutable
+
+class Neo4j extends SparkBatchSource {
+
+  val neo4jConf: mutable.Map[String, String] = mutable.Map()
+  val readFormatter: String = "org.neo4j.spark.DataSource"
+  val mustConfiguredAll: Array[String] = Array("result_table_name", "url")
+  val mustConfiguredOne: Array[String] = Array("query", "labels", "relationship")
+
+
+  override def getData(env: SparkEnvironment): Dataset[Row] = {
+    val read: DataFrameReader = env.getSparkSession.read
+    read.format(readFormatter)
+    neo4jConf.foreach(it => {
+      read.option(it._1, it._2)
+    })
+    read.load()
+
+  }
+
+  override def checkConfig(): CheckResult = {
+
+    val notConfigMustAllParam: Array[String] = mustConfiguredAll.filter(item => !config.hasPath(item))
+    val notConfigMustOneParam: Array[String] = mustConfiguredOne.filter(item => !config.hasPath(item))
+    val isConfiguredOne: Boolean = notConfigMustOneParam.size < mustConfiguredOne.size
+
+    if (notConfigMustAllParam.isEmpty && isConfiguredOne) {
+      new CheckResult(true, "neo4j config is enough")
+    } else {
+      new CheckResult(false, s"neo4j config is not enough please check config [${notConfigMustAllParam.mkString(" ")}] " +
+        s"${if (!isConfiguredOne) "you must have one of " + mustConfiguredOne.mkString(" ") else ""}")

Review comment:
       we have a public `CheckResult` Class




-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] wuchunfu commented on a change in pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
wuchunfu commented on a change in pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#discussion_r782713968



##########
File path: docs/en/configuration/source-plugins/neo4j.md
##########
@@ -0,0 +1,133 @@
+# Source plugin: Neo4j
+

Review comment:
       Please change the title `Source plugin: Neo4j` to `Source plugin: Neo4j [Spark]`




-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] CalvinKirs commented on a change in pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
CalvinKirs commented on a change in pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#discussion_r783655118



##########
File path: seatunnel-connectors/seatunnel-connector-spark-neo4j/src/main/scala/org/apache/seatunnel/spark/source/Neo4j.scala
##########
@@ -0,0 +1,66 @@
+/*
+ * 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.
+ */
+
+package org.apache.seatunnel.spark.source
+
+import org.apache.seatunnel.common.config.CheckResult
+import org.apache.seatunnel.spark.SparkEnvironment
+import org.apache.seatunnel.spark.batch.SparkBatchSource
+import org.apache.spark.sql.{DataFrameReader, Dataset, Row}
+
+import scala.collection.JavaConverters._
+import scala.collection.mutable
+
+class Neo4j extends SparkBatchSource {
+
+  val neo4jConf: mutable.Map[String, String] = mutable.Map()
+  val readFormatter: String = "org.neo4j.spark.DataSource"
+  val mustConfiguredAll: Array[String] = Array("result_table_name", "url")
+  val mustConfiguredOne: Array[String] = Array("query", "labels", "relationship")
+
+
+  override def getData(env: SparkEnvironment): Dataset[Row] = {
+    val read: DataFrameReader = env.getSparkSession.read
+    read.format(readFormatter)
+    neo4jConf.foreach(it => {
+      read.option(it._1, it._2)
+    })
+    read.load()
+
+  }
+
+  override def checkConfig(): CheckResult = {
+
+    val notConfigMustAllParam: Array[String] = mustConfiguredAll.filter(item => !config.hasPath(item))
+    val notConfigMustOneParam: Array[String] = mustConfiguredOne.filter(item => !config.hasPath(item))
+    val isConfiguredOne: Boolean = notConfigMustOneParam.size < mustConfiguredOne.size
+
+    if (notConfigMustAllParam.isEmpty && isConfiguredOne) {
+      new CheckResult(true, "neo4j config is enough")
+    } else {
+      new CheckResult(false, s"neo4j config is not enough please check config [${notConfigMustAllParam.mkString(" ")}] " +
+        s"${if (!isConfiguredOne) "you must have one of " + mustConfiguredOne.mkString(" ") else ""}")

Review comment:
       CheckConfigUtil.check is new check method.




-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] RickyHuo commented on a change in pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
RickyHuo commented on a change in pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#discussion_r786649117



##########
File path: seatunnel-connectors/seatunnel-connector-spark-neo4j/src/main/scala/org/apache/seatunnel/spark/source/Neo4j.scala
##########
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+package org.apache.seatunnel.spark.source
+
+import org.apache.seatunnel.common.config.{CheckConfigUtil, CheckResult}
+import org.apache.seatunnel.spark.SparkEnvironment
+import org.apache.seatunnel.spark.batch.SparkBatchSource
+import org.apache.spark.sql.{DataFrameReader, Dataset, Row}
+
+import scala.collection.JavaConverters._
+import scala.collection.mutable
+
+class Neo4j extends SparkBatchSource {
+
+  val neo4jConf: mutable.Map[String, String] = mutable.Map()
+  val readFormatter: String = "org.neo4j.spark.DataSource"
+
+
+  override def getData(env: SparkEnvironment): Dataset[Row] = {
+    val read: DataFrameReader = env.getSparkSession.read
+    read.format(readFormatter)
+    neo4jConf.foreach(it => {
+      read.option(it._1, it._2)
+    })
+    read.load()
+
+  }
+
+  override def checkConfig(): CheckResult = {
+
+    val checkALL: CheckResult = CheckConfigUtil.checkOne(config, "query", "labels", "relationship")
+    val checkOne: CheckResult = CheckConfigUtil.check(config, "result_table_name", "url")

Review comment:
       The variable name is confused.

##########
File path: docs/en/spark/configuration/source-plugins/neo4j.md
##########
@@ -0,0 +1,137 @@
+# Source plugin: Neo4j [Spark]
+
+## Description
+
+Read data from Neo4j.
+
+Neo4j Connector for Apache Spark allows you to read data from Neo4j in 3 different ways: by node labels, by relationship name, and by direct Cypher query.
+
+The Options required of yes* means that  you must specify  one way of (query labels relationship)
+
+for detail neo4j config message please visit [neo4j doc](#https://neo4j.com/docs/spark/current/reading/) 
+
+
+
+## Options
+
+| name                                                                     | type   | required | default value |
+| -------------------------------------------------------------------------| ------ | -------- | ------------- |
+| [result_table_name](#result.table.name-string)                           | string | yes      | -             |
+| [authentication.type](#authentication.type-string)                       | string | no       | -             |
+| [authentication.basic.username](#authentication.basic.username-string)   | string | no       | -             |
+| [authentication.basic.password](#authentication.basic.password-string)   | string | no       | -             |
+| [url](#url-string)                                                       | string | yes      | -             |
+| [query](#query-string)                                                   | string | yes*     | -             |
+| [labels](#labels-string)                                                 | string | yes*     | -             |
+| [relationship](#relationship-string)                                     | string | yes*     | -             |
+| [schema.flatten.limit](#schema.flatten.limit-string)                     | string | no       | -             |
+| [schema.strategy](#schema.strategy-string)                               | string | no       | -             |
+| [pushdown.filters.enabled](#pushdown.filters.enabled-string)             | string | no       | -             |
+| [pushdown.columns.enabled](#pushdown.columns.enabled-string)             | string | no       | -             |
+| [partitions](#partitions-string)                                         | string | no       | -             |
+| [query.count](#query.count-string)                                       | string | no       | -             |
+| [relationship.nodes.map](#relationship.nodes.map-string)                 | string | no       | -             |
+| [relationship.source.labels](#relationship.source.labels-string)         | string | Yes      | -             |
+| [relationship.target.labels](#relationship.target.labels-string)         | string | Yes      | -             |
+
+### result.table.name [string]
+
+result table name
+
+### authentication.type [string]
+
+authentication type
+
+### authentication.basic.username [string]
+
+username
+
+### authentication.basic.password [string]
+
+password
+
+### url [string]
+url 
+
+### query [string]
+
+Cypher query to read the data. you must specify  one way of (query labels relationship)
+
+### labels [string]
+
+List of node labels separated by : The first label will be the primary label. you must specify  one way of (query labels relationship)
+
+### relationship [string]
+
+Name of a relationship. you must specify  one way of (query labels relationship)

Review comment:
       You must specify one option from [query, labels OR relationship]
   
   Just a suggestion :)




-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] CalvinKirs commented on pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
CalvinKirs commented on pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#issuecomment-1011004944


   > Note that this neo4j seems to be an open source agreement of GNU. Will this conflict with the Apache open source agreement? If there is no conflict, should a declaration file be added? @CalvinKirs
   
   you are right, which is not compatible with AL2.


-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] CalvinKirs closed pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
CalvinKirs closed pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028


   


-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] wuchunfu commented on pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
wuchunfu commented on pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#issuecomment-1010992052


   Note that this neo4j seems to be an open source agreement of GNU. Will this conflict with the Apache open source agreement? If there is no conflict, should a declaration file be added? @CalvinKirs 


-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] CalvinKirs commented on a change in pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
CalvinKirs commented on a change in pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028#discussion_r783064522



##########
File path: seatunnel-connectors/seatunnel-connector-spark-neo4j/pom.xml
##########
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>seatunnel-connectors</artifactId>
+        <groupId>org.apache.seatunnel</groupId>
+        <version>2.0.5-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>seatunnel-connector-spark-neo4j</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>

Review comment:
       this should be delete




-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-seatunnel] RickyHuo merged pull request #1028: [SeaTunnel #967][seatunnel-connector] Add neo4j spark source

Posted by GitBox <gi...@apache.org>.
RickyHuo merged pull request #1028:
URL: https://github.com/apache/incubator-seatunnel/pull/1028


   


-- 
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: commits-unsubscribe@seatunnel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org