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

Reply via email to