This is an automated email from the ASF dual-hosted git repository.
okram pushed a commit to branch tp4
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/tp4 by this push:
new 08be42f first organizational push on tp4. basic structure, pom.xmls
up and running, and some basic code for play.
08be42f is described below
commit 08be42f34b3e5068a08363e18a78e90aff3288e2
Author: Marko A. Rodriguez <[email protected]>
AuthorDate: Sun Mar 3 08:37:10 2019 -0700
first organizational push on tp4. basic structure, pom.xmls up and running,
and some basic code for play.
---
.gitignore | 5 +
README.asciidoc | 21 ++
gremlin-core/pom.xml | 46 +++++
.../tinkerpop/gremlin/language/GremlinCore.java | 29 +++
.../apache/tinkerpop/gremlin/machine/Bytecode.java | 42 ++++
.../tinkerpop/gremlin/machine/Instruction.java | 47 +++++
.../tinkerpop/gremlin/machine/Traversal.java | 45 +++++
.../tinkerpop/gremlin/machine/Traverser.java | 45 +++++
.../gremlin/machine/coefficients/Coefficients.java | 36 ++++
.../machine/coefficients/LongCoefficients.java | 50 +++++
.../gremlin/machine/functions/MapFunction.java | 45 +++++
.../tinkerpop/gremlin/machine/TraversalTest.java | 36 ++++
pom.xml | 217 +++++++++++++++++++++
13 files changed, 664 insertions(+)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ad8c63c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+*.iml
+*.ipr
+*.iws
+target/
+fileTemplates/
diff --git a/README.asciidoc b/README.asciidoc
index 1eaec1a..aba1b44 100644
--- a/README.asciidoc
+++ b/README.asciidoc
@@ -15,3 +15,24 @@ See the License for the specific language governing
permissions and
limitations under the License.
////
== TinkerPop4
+
+* gremlin-core: A collection of Gremlin machine and language components
+* gremlin-data
+** gremlin-graphs
+*** gremlin-neo4j: A Neo4j implementation of the Gremlin graph primitives
+*** gremlin-tinkergraph: A TinkerGraph implementation of the Gremlin graph
primitives
+* gremlin-machines
+** gremlin-beam: Apache Beam implementation of the Gremlin traversal machine
+** gremlin-akka: Akka implementation of the Gremlin traversal machine
+** gremlin-pipes: Java iterator implementation of the Gremlin traversal machine
+* gremlin-languages
+** gremlin-variants
+*** gremlin-groovy: Groovy implementation of the Gremlin traversal language
+*** gremlin-python: Python implementation of the Gremlin traversal language
+*** gremlin-javascript: JavaScript implementation of the Gremlin traversal
language
+*** gremlin-dotnet: C# implementation of the Gremlin traversal language
+** gremlin-uniques
+*** gremlin-sparql: A SPARQL to Gremlin bytecode compiler
+*** gremlin-sql: An SQL to Gremlin bytecode compiler
+*** gremlin-cypher: A Cypher to Gremlin bytecode compiler
+* gremlin-test: language test suite
\ No newline at end of file
diff --git a/gremlin-core/pom.xml b/gremlin-core/pom.xml
new file mode 100644
index 0000000..b92f8fd
--- /dev/null
+++ b/gremlin-core/pom.xml
@@ -0,0 +1,46 @@
+<!--
+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">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>tinkerpop</artifactId>
+ <groupId>org.apache.tinkerpop</groupId>
+ <version>4.0-SNAPSHOT</version>
+ </parent>
+ <name>Apache TinkerPop :: Gremlin Core</name>
+ <artifactId>gremlin-core</artifactId>
+ <build>
+ <directory>${basedir}/target</directory>
+ <finalName>${project.artifactId}-${project.version}</finalName>
+ <testResources>
+ <testResource>
+ <directory>${basedir}/src/test/resources
+ </directory>
+ </testResource>
+ </testResources>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
diff --git
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/GremlinCore.java
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/GremlinCore.java
new file mode 100644
index 0000000..f876aaa
--- /dev/null
+++
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/GremlinCore.java
@@ -0,0 +1,29 @@
+/*
+ * 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.tinkerpop.gremlin.language;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public interface GremlinCore {
+
+ public default GremlinCore select() {
+ return null;
+ }
+}
diff --git
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/Bytecode.java
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/Bytecode.java
new file mode 100644
index 0000000..5334fd0
--- /dev/null
+++
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/Bytecode.java
@@ -0,0 +1,42 @@
+/*
+ * 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.tinkerpop.gremlin.machine;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public class Bytecode<C> {
+
+ public List<Instruction<C>> instructions;
+
+ public Bytecode() {
+ this.instructions = new ArrayList<>();
+ }
+
+ public void addInstruction(final C coefficient, final String op, final
Object... args) {
+ this.instructions.add(new Instruction<>(coefficient, op, args));
+ }
+
+ public List<Instruction<C>> getInstructions() {
+ return this.instructions;
+ }
+}
diff --git
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/Instruction.java
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/Instruction.java
new file mode 100644
index 0000000..dfc9d0a
--- /dev/null
+++
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/Instruction.java
@@ -0,0 +1,47 @@
+/*
+ * 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.tinkerpop.gremlin.machine;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public class Instruction<C> {
+
+ private final C coefficient;
+ private final String op;
+ private final Object[] args;
+
+ public Instruction(final C coefficient, final String op, final Object...
args) {
+ this.coefficient = coefficient;
+ this.op = op;
+ this.args = args;
+ }
+
+ public C getCoefficient() {
+ return this.coefficient;
+ }
+
+ public String getOp() {
+ return this.op;
+ }
+
+ public Object[] getArgs() {
+ return this.args;
+ }
+}
diff --git
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/Traversal.java
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/Traversal.java
new file mode 100644
index 0000000..72da3c2
--- /dev/null
+++
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/Traversal.java
@@ -0,0 +1,45 @@
+/*
+ * 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.tinkerpop.gremlin.machine;
+
+import java.util.function.Function;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public class Traversal<C, A, B> {
+
+ private final Bytecode<C> bytecode;
+ private C currentCoefficient;
+
+ public Traversal(final C unity) {
+ this.currentCoefficient = unity;
+ this.bytecode = new Bytecode<>();
+ }
+
+ public <E> Traversal<C, A, E> map(final Function<B, E> mapFunction) {
+ this.bytecode.addInstruction(this.currentCoefficient, "map",
mapFunction);
+ return (Traversal) this;
+ }
+
+ public Bytecode<C> getBytecode() {
+ return this.bytecode;
+ }
+
+}
diff --git
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/Traverser.java
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/Traverser.java
new file mode 100644
index 0000000..6c0712c
--- /dev/null
+++
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/Traverser.java
@@ -0,0 +1,45 @@
+/*
+ * 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.tinkerpop.gremlin.machine;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public class Traverser<C, A> {
+
+ private final C coefficient;
+ private final A object;
+
+ public Traverser(final C coefficient, final A object) {
+ this.coefficient = coefficient;
+ this.object = object;
+ }
+
+ public C getCoefficient() {
+ return this.coefficient;
+ }
+
+ public A getObject() {
+ return this.object;
+ }
+
+ public <B> Traverser<C, B> split(final C coefficient, final B object) {
+ return new Traverser<>(coefficient, object);
+ }
+}
diff --git
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/coefficients/Coefficients.java
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/coefficients/Coefficients.java
new file mode 100644
index 0000000..d6fcb15
--- /dev/null
+++
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/coefficients/Coefficients.java
@@ -0,0 +1,36 @@
+/*
+ * 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.tinkerpop.gremlin.machine.coefficients;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public interface Coefficients<C> {
+
+ public C sum(final C coefficientA, final C coefficientB);
+
+ public C multiply(final C coefficientA, final C coefficientB);
+
+ public C unity();
+
+ public C zero();
+
+ public Long count(final Long coefficient);
+
+}
diff --git
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/coefficients/LongCoefficients.java
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/coefficients/LongCoefficients.java
new file mode 100644
index 0000000..d59c52c
--- /dev/null
+++
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/coefficients/LongCoefficients.java
@@ -0,0 +1,50 @@
+/*
+ * 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.tinkerpop.gremlin.machine.coefficients;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public final class LongCoefficients implements Coefficients<Long> {
+
+ @Override
+ public final Long sum(final Long coefficientA, final Long coefficientB) {
+ return coefficientA + coefficientB;
+ }
+
+ @Override
+ public final Long multiply(final Long coefficientA, final Long
coefficientB) {
+ return coefficientA * coefficientB;
+ }
+
+ @Override
+ public final Long unity() {
+ return 1L;
+ }
+
+ @Override
+ public final Long zero() {
+ return 0L;
+ }
+
+ @Override
+ public final Long count(final Long coefficient) {
+ return coefficient;
+ }
+}
diff --git
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/functions/MapFunction.java
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/functions/MapFunction.java
new file mode 100644
index 0000000..35d5b12
--- /dev/null
+++
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/machine/functions/MapFunction.java
@@ -0,0 +1,45 @@
+/*
+ * 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.tinkerpop.gremlin.machine.functions;
+
+import org.apache.tinkerpop.gremlin.machine.Traverser;
+import org.apache.tinkerpop.gremlin.machine.coefficients.Coefficients;
+
+import java.util.function.Function;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public class MapFunction<C, A, B> implements Function<Traverser<C, A>,
Traverser<C, B>> {
+
+ private final C coefficient;
+ private final Coefficients<C> coefficients;
+ private final Function<A, B> mapFunction;
+
+ public MapFunction(final Coefficients<C> coefficients, final C
coefficient, final Function<A, B> mapFunction) {
+ this.coefficients = coefficients;
+ this.coefficient = coefficient;
+ this.mapFunction = mapFunction;
+ }
+
+ @Override
+ public Traverser<C, B> apply(final Traverser<C, A> traverser) {
+ return
traverser.split(this.coefficients.multiply(traverser.getCoefficient(),
this.coefficient), this.mapFunction.apply(traverser.getObject()));
+ }
+}
diff --git
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/machine/TraversalTest.java
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/machine/TraversalTest.java
new file mode 100644
index 0000000..30322a1
--- /dev/null
+++
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/machine/TraversalTest.java
@@ -0,0 +1,36 @@
+/*
+ * 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.tinkerpop.gremlin.machine;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public class TraversalTest {
+
+ @Test
+ public void shouldHaveBytecode() {
+ final Traversal<Long, Integer, Integer> traversal = new
Traversal<>(1L);
+ traversal.map(a -> a + 1);
+ assertEquals("map",
traversal.getBytecode().getInstructions().get(0).getOp());
+ }
+}
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..dee708e
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,217 @@
+<!--
+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/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>21</version>
+ </parent>
+ <groupId>org.apache.tinkerpop</groupId>
+ <artifactId>tinkerpop</artifactId>
+ <version>4.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Apache TinkerPop</name>
+ <description>A Distributed Virtual Machine and Language</description>
+ <url>http://tinkerpop.apache.org/</url>
+ <mailingLists>
+ <mailingList>
+ <name>Users</name>
+ <subscribe>http://groups.google.com/group/gremlin-users</subscribe>
+
<unsubscribe>http://groups.google.com/group/gremlin-users</unsubscribe>
+
<archive>http://groups.google.com/group/gremlin-users/topics</archive>
+ </mailingList>
+ <mailingList>
+ <name>Developers</name>
+ <subscribe>[email protected]</subscribe>
+ <unsubscribe>[email protected]</unsubscribe>
+ <archive>[email protected]</archive>
+ </mailingList>
+ </mailingLists>
+ <inceptionYear>2019</inceptionYear>
+ <licenses>
+ <license>
+ <name>Apache 2</name>
+ <url>http://www.opensource.org/licenses/Apache-2.0</url>
+ </license>
+ </licenses>
+ <organization>
+ <name>Apache Software Foundation</name>
+ <url>http://www.apache.org/</url>
+ </organization>
+ <developers>
+ <developer>
+ <name>Marko A. Rodriguez</name>
+ <email>[email protected]</email>
+ <url>http://markorodriguez.com</url>
+ </developer>
+ </developers>
+ <prerequisites>
+ <maven>3.2.5</maven>
+ </prerequisites>
+ <modules>
+ <module>gremlin-core</module>
+ </modules>
+ <scm>
+ <connection>scm:git:[email protected]:apache/tinkerpop.git</connection>
+
<developerConnection>scm:git:[email protected]:apache/tinkerpop.git</developerConnection>
+ <url>https://github.com/apache/tinkerpop</url>
+ </scm>
+ <properties>
+ <junit.version>5.4.0</junit.version>
+ </properties>
+ <dependencies>
+ <!-- TESTING -->
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-api</artifactId>
+ <version>5.4.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <version>5.4.0</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <directory>${basedir}/target</directory>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <version>1.4.1</version>
+ <executions>
+ <execution>
+ <id>enforce-all</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <DependencyConvergence/>
+ <requireJavaVersion>
+ <version>[11.0,)</version>
+ </requireJavaVersion>
+ <requireMavenVersion>
+ <version>[3.2.5,)</version>
+ </requireMavenVersion>
+ </rules>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <version>0.12</version>
+ <executions>
+ <execution>
+ <id>rat-checks</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <excludeSubProjects>false</excludeSubProjects>
+ <excludes>
+ <exclude>fileTemplates/</exclude>
+ <exclude>**/*.iml</exclude>
+ <exclude>**/target/**</exclude>
+ </excludes>
+ <licenses>
+ <license
implementation="org.apache.rat.analysis.license.ApacheSoftwareLicense20"/>
+ </licenses>
+ </configuration>
+ </plugin>
+ </plugins>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.8.0</version>
+ <configuration>
+ <source>11</source>
+ <target>11</target>
+ <compilerArgs>
+ <arg>-parameters</arg>
+ </compilerArgs>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>2.8.2</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.22.1</version>
+ <configuration>
+
<argLine>-Dlog4j.configuration=${log4j-test.properties}
-Dbuild.dir=${project.build.directory} -Dis.testing=true
+ </argLine>
+ <excludes>
+ <exclude>**/*IntegrateTest.java</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <version>2.22.1</version>
+ <executions>
+ <execution>
+ <id>integration-test</id>
+ <goals>
+ <goal>integration-test</goal>
+ </goals>
+ <configuration>
+ <includes>
+ <include>**/*IntegrateTest.java</include>
+ </includes>
+ <skipTests>${skipIntegrationTests}</skipTests>
+
<argLine>-Dlog4j.configuration=${log4j-test.properties} -Dhost=localhost
-Dport=8182
+ -Dbuild.dir=${project.build.directory}
-Dis.testing=true
+ </argLine>
+
<summaryFile>target/failsafe-reports/failsafe-integration.xml</summaryFile>
+ </configuration>
+ </execution>
+ <execution>
+ <id>verify-integration-test</id>
+ <goals>
+ <goal>verify</goal>
+ </goals>
+ <configuration>
+ <skipTests>${skipIntegrationTests}</skipTests>
+ <summaryFiles>
+
<summaryFile>target/failsafe-reports/failsafe-integration.xml</summaryFile>
+ </summaryFiles>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+</project>
\ No newline at end of file