You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2022/03/01 19:29:08 UTC

[GitHub] [arrow] davisusanibar opened a new pull request #12534: [JAVA]: WIP - Java Tutorial: Developer Docs for Java

davisusanibar opened a new pull request #12534:
URL: https://github.com/apache/arrow/pull/12534


   Task related to: https://issues.apache.org/jira/browse/ARROW-15178


-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r819533650



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,298 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11

Review comment:
       Changed. Mention: JRE 8,9,10,11 also mention that CI runs only for JRE11. 
   

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,298 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\

Review comment:
       Deleted

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,298 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building JNI Libraries on Linux
+-------------------------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.

Review comment:
       Changed

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,298 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building JNI Libraries on Linux
+-------------------------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014

Review comment:
       Updated

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,298 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building JNI Libraries on Linux
+-------------------------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+   :alt: An example image for opening java project
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+   :alt: An example image for create new maven configurations and parameters needed

Review comment:
       Changed




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r818260339



##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,170 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data \
+        clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.308 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.899 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  2.065 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.417 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  8.132 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [ 10.211 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:48 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  7.282 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 12.612 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 15.558 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  6.303 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.326 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 50.632 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  9.932 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 22.559 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  9.649 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 17.145 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 44.571 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  9.202 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [ 15.794 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [ 14.205 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [02:06 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 15.261 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Performance Testing
+===================
+
+Java module that contains performance tests is: `performance`
+
+Let's configure our performance environment to run performance tests:
+
+- Install `benchmark`_
+- Install `archery`_
+- Install `conbench`_
+
+Lets execute benchmark tests:
+
+.. code-block::
+
+    $ cd benchmarks
+    $ conbench java-micro --help
+    $ conbench java-micro
+        --iterations=1
+        --commit=e90472e35b40f58b17d408438bb8de1641bfe6ef
+        --java-home=<absolute path to your java home>
+        --src=<absolute path to your arrow project>
+        --benchmark-filter=org.apache.arrow.adapter.AvroAdapterBenchmarks.testAvroToArrow
+    Benchmark                              Mode  Cnt       Score   Error  Units
+    AvroAdapterBenchmarks.testAvroToArrow  avgt       725545.783          ns/op
+    Time to POST http://localhost:5000/api/login/ 0.14911699295043945
+    Time to POST http://localhost:5000/api/benchmarks/ 0.06116318702697754
+
+Then go to: http://127.0.0.1:5000/ to see reports:
+
+UI Home:
+
+.. image:: img/conbench_ui.png
+
+UI Runs:
+
+.. image:: img/conbench_runs.png
+
+UI Benchmark:
+
+.. image:: img/conbench_benchmark.png
+
+Code Style
+==========
+
+Code style are configured at `java/dev/checkstyle`

Review comment:
       Updated

##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,170 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data \
+        clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.308 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.899 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  2.065 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.417 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  8.132 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [ 10.211 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:48 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  7.282 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 12.612 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 15.558 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  6.303 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.326 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 50.632 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  9.932 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 22.559 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  9.649 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 17.145 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 44.571 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  9.202 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [ 15.794 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [ 14.205 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [02:06 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 15.261 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Performance Testing
+===================
+
+Java module that contains performance tests is: `performance`
+
+Let's configure our performance environment to run performance tests:
+
+- Install `benchmark`_
+- Install `archery`_
+- Install `conbench`_
+
+Lets execute benchmark tests:
+
+.. code-block::
+
+    $ cd benchmarks
+    $ conbench java-micro --help
+    $ conbench java-micro
+        --iterations=1
+        --commit=e90472e35b40f58b17d408438bb8de1641bfe6ef
+        --java-home=<absolute path to your java home>
+        --src=<absolute path to your arrow project>
+        --benchmark-filter=org.apache.arrow.adapter.AvroAdapterBenchmarks.testAvroToArrow
+    Benchmark                              Mode  Cnt       Score   Error  Units
+    AvroAdapterBenchmarks.testAvroToArrow  avgt       725545.783          ns/op
+    Time to POST http://localhost:5000/api/login/ 0.14911699295043945
+    Time to POST http://localhost:5000/api/benchmarks/ 0.06116318702697754
+
+Then go to: http://127.0.0.1:5000/ to see reports:
+
+UI Home:
+
+.. image:: img/conbench_ui.png
+
+UI Runs:
+
+.. image:: img/conbench_runs.png
+
+UI Benchmark:
+
+.. image:: img/conbench_benchmark.png
+
+Code Style
+==========
+
+Code style are configured at `java/dev/checkstyle`
+
+.. code-block::
+
+    <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>3.1.0</version>
+        <executions>
+            <execution>
+                <id>validate</id>
+                <phase>validate</phase>
+                <goals>
+                    <goal>check</goal>
+                </goals>
+            </execution>
+        </executions>
+        <configuration>
+            <configLocation>dev/checkstyle/checkstyle.xml</configLocation>
+            <headerLocation>dev/checkstyle/checkstyle.license</headerLocation>
+            <suppressionsLocation>dev/checkstyle/suppressions.xml</suppressionsLocation>
+            <includeTestSourceDirectory>true</includeTestSourceDirectory>
+            ...
+        </configuration>
+    </plugin>
+
+Validate check style configuration:

Review comment:
       Changed




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r818665873



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        $GITHUB_WORKSPACE/java/c
+    $ cmake --build . --target install
+    $ ls -latr $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        $GITHUB_WORKSPACE/cpp
+    $ cmake --build . --target install
+    $ ls -latr  $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Build Java Modules That Consume C / C++ Libs
+++++++++++++++++++++++++++++++++++++++++++++
+
+Build Java C Data Interface
+###########################
+
+Java arrow-c-data maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Build Java C++ Interface
+########################
+
+Java arrow-jni maven profile (build ORC / Gandiva / Dataset):
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+
+Let's define our JRE runner:
+
+.. image:: img/java_jre_runner.png
+
+Let's configure additional environment properties:
+
+.. image:: img/java_jre_env_properties.png
+
+Let's run our java-dataset maven configuration:
+
+.. image:: img/java_run_mvn_configuration.png
+
+.. image:: img/java_run_mvn_configuration_result.png
+
+Common Errors
+=============
+
+1.- Errors related to:
+    - Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem)
+    - Could NOT find Lz4 (missing: LZ4_LIB)
+    - Could NOT find zstd (missing: ZSTD_LIB)
+
+    Consider to configure parameters that download software at the build time with:
+
+.. code-block::
+
+    -Dre2_SOURCE=BUNDLED \
+    -DBoost_SOURCE=BUNDLED \
+    -Dutf8proc_SOURCE=BUNDLED \
+    -DSnappy_SOURCE=BUNDLED \
+    -DORC_SOURCE=BUNDLED \
+    -DZLIB_SOURCE=BUNDLED \
+
+2.- Errors related to:
+    - Caused by: java.lang.NoSuchFieldException: reservedMemory.
+
+    We could move from classBits.getDeclaredField("reservedMemory") to classBits.getDeclaredField("RESERVED_MEMORY")

Review comment:
       https://issues.apache.org/jira/browse/ARROW-15834




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r818688695



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building C & C++ JNI Libraries on Linux
+---------------------------------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building C & C++ JNI Libraries on MacOS
+---------------------------------------
+
+For Build C Data Interface lib:

Review comment:
       Changed




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r821196021



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,239 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+When IntelliJ open arrow java project its compiled automatically and show you maven modules inside root project and
+also offer a side bar to see profile and maven plugin configured by default.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+Also IntelliJ offer options to configure custom run/debug configurations to setup maven module working directory,
+maven command line to run, profiles, configure JRE to use, add environment variables as some examples of these.
+Option available at: Run -> Edit Configurations.
+
+Let's create our maven configuration: java-dataset
+
+.. figure:: img/java_mvn_configuration.png
+   :scale: 50 %
+   :alt: Setup new maven configurations with working directory, command to run and profile used to build
+
+Let's define our JRE runner:
+
+.. figure:: img/java_jre_runner.png
+   :scale: 50 %
+   :alt: Setup maven configurations with JRE selected
+
+Let's configure additional environment variables:

Review comment:
       Deleted because is adding complexity to simple task




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r822939826



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,231 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:

Review comment:
       Deleted




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r821195205



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,239 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+When IntelliJ open arrow java project its compiled automatically and show you maven modules inside root project and
+also offer a side bar to see profile and maven plugin configured by default.

Review comment:
       Added.




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r818260036



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        $GITHUB_WORKSPACE/java/c
+    $ cmake --build . --target install
+    $ ls -latr $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        $GITHUB_WORKSPACE/cpp
+    $ cmake --build . --target install
+    $ ls -latr  $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Build Java Modules That Consume C / C++ Libs
+++++++++++++++++++++++++++++++++++++++++++++
+
+Build Java C Data Interface
+###########################
+
+Java arrow-c-data maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Build Java C++ Interface
+########################
+
+Java arrow-jni maven profile (build ORC / Gandiva / Dataset):
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+
+Let's define our JRE runner:
+
+.. image:: img/java_jre_runner.png
+
+Let's configure additional environment properties:
+
+.. image:: img/java_jre_env_properties.png
+
+Let's run our java-dataset maven configuration:
+
+.. image:: img/java_run_mvn_configuration.png
+
+.. image:: img/java_run_mvn_configuration_result.png
+
+Common Errors
+=============
+
+1.- Errors related to:
+    - Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem)
+    - Could NOT find Lz4 (missing: LZ4_LIB)
+    - Could NOT find zstd (missing: ZSTD_LIB)
+
+    Consider to configure parameters that download software at the build time with:
+
+.. code-block::

Review comment:
       Updated

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        $GITHUB_WORKSPACE/java/c
+    $ cmake --build . --target install
+    $ ls -latr $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        $GITHUB_WORKSPACE/cpp
+    $ cmake --build . --target install
+    $ ls -latr  $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Build Java Modules That Consume C / C++ Libs
+++++++++++++++++++++++++++++++++++++++++++++
+
+Build Java C Data Interface
+###########################
+
+Java arrow-c-data maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Build Java C++ Interface
+########################
+
+Java arrow-jni maven profile (build ORC / Gandiva / Dataset):
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+
+Let's define our JRE runner:
+
+.. image:: img/java_jre_runner.png
+
+Let's configure additional environment properties:
+
+.. image:: img/java_jre_env_properties.png
+
+Let's run our java-dataset maven configuration:
+
+.. image:: img/java_run_mvn_configuration.png
+
+.. image:: img/java_run_mvn_configuration_result.png
+
+Common Errors
+=============
+
+1.- Errors related to:
+    - Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem)
+    - Could NOT find Lz4 (missing: LZ4_LIB)
+    - Could NOT find zstd (missing: ZSTD_LIB)
+
+    Consider to configure parameters that download software at the build time with:
+
+.. code-block::
+
+    -Dre2_SOURCE=BUNDLED \
+    -DBoost_SOURCE=BUNDLED \
+    -Dutf8proc_SOURCE=BUNDLED \
+    -DSnappy_SOURCE=BUNDLED \
+    -DORC_SOURCE=BUNDLED \
+    -DZLIB_SOURCE=BUNDLED \
+
+2.- Errors related to:
+    - Caused by: java.lang.NoSuchFieldException: reservedMemory.
+
+    We could move from classBits.getDeclaredField("reservedMemory") to classBits.getDeclaredField("RESERVED_MEMORY")

Review comment:
       Deleted




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r818260260



##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,170 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data \
+        clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.308 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.899 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  2.065 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.417 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  8.132 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [ 10.211 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:48 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  7.282 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 12.612 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 15.558 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  6.303 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.326 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 50.632 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  9.932 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 22.559 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  9.649 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 17.145 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 44.571 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  9.202 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [ 15.794 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [ 14.205 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [02:06 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 15.261 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Performance Testing
+===================
+
+Java module that contains performance tests is: `performance`
+
+Let's configure our performance environment to run performance tests:
+
+- Install `benchmark`_
+- Install `archery`_
+- Install `conbench`_

Review comment:
       Added as an optional

##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,170 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data \
+        clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.308 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.899 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  2.065 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.417 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  8.132 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [ 10.211 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:48 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  7.282 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 12.612 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 15.558 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  6.303 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.326 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 50.632 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  9.932 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 22.559 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  9.649 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 17.145 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 44.571 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  9.202 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [ 15.794 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [ 14.205 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [02:06 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 15.261 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Performance Testing
+===================
+
+Java module that contains performance tests is: `performance`
+
+Let's configure our performance environment to run performance tests:
+
+- Install `benchmark`_
+- Install `archery`_
+- Install `conbench`_
+
+Lets execute benchmark tests:
+
+.. code-block::
+
+    $ cd benchmarks
+    $ conbench java-micro --help
+    $ conbench java-micro
+        --iterations=1
+        --commit=e90472e35b40f58b17d408438bb8de1641bfe6ef
+        --java-home=<absolute path to your java home>
+        --src=<absolute path to your arrow project>
+        --benchmark-filter=org.apache.arrow.adapter.AvroAdapterBenchmarks.testAvroToArrow
+    Benchmark                              Mode  Cnt       Score   Error  Units
+    AvroAdapterBenchmarks.testAvroToArrow  avgt       725545.783          ns/op
+    Time to POST http://localhost:5000/api/login/ 0.14911699295043945
+    Time to POST http://localhost:5000/api/benchmarks/ 0.06116318702697754
+
+Then go to: http://127.0.0.1:5000/ to see reports:
+
+UI Home:
+
+.. image:: img/conbench_ui.png
+
+UI Runs:
+
+.. image:: img/conbench_runs.png
+
+UI Benchmark:
+
+.. image:: img/conbench_benchmark.png
+
+Code Style
+==========
+
+Code style are configured at `java/dev/checkstyle`
+
+.. code-block::
+
+    <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>3.1.0</version>
+        <executions>
+            <execution>
+                <id>validate</id>
+                <phase>validate</phase>
+                <goals>
+                    <goal>check</goal>
+                </goals>
+            </execution>
+        </executions>
+        <configuration>
+            <configLocation>dev/checkstyle/checkstyle.xml</configLocation>
+            <headerLocation>dev/checkstyle/checkstyle.license</headerLocation>
+            <suppressionsLocation>dev/checkstyle/suppressions.xml</suppressionsLocation>
+            <includeTestSourceDirectory>true</includeTestSourceDirectory>
+            ...
+        </configuration>
+    </plugin>

Review comment:
       Deleted




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r821639905



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,214 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+IntelliJ can import Maven projects. To start working on Arrow in IntelliJ, just open the `java/`
+subdirectory of the Arrow repository.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+An option to understand the arrow java code is running the java unit test in debugging mode to see
+objects initialized parameters and values assigned.
+
+Let's debug `TestArrowBuf.java`_ to see `ArrowBuf` object initialization. Go to the java class `TestArrowBuf.java`
+and method `testSetBytesBigEndian`, add breakpoints needed, right click on the method name and select option
+mention `Debug 'testSetBytesBigEndian()'` and inspect te variable when debug mode arrive to `ArrowBuf` variable.
+
+.. figure:: img/java_debug_mode.png
+   :scale: 50 %
+   :alt: An ArrowBuf variable initialized with parameters and values assigned.

Review comment:
       Again: I think this is all very basic stuff for an IntelliJ user. The reason why I brought up IDEs in the first place was because I recalled that IntelliJ needed some settings in order to build Arrow (due to using error-prone). If that's not the case anymore, then all we need to do is tell people to open the Java subdirectory, and I don't think we need to add screenshots or anything else. We shouldn't add more text for the sake of adding it.

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,214 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------

Review comment:
       ```suggestion
   IntelliJ
   --------
   ```




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] ursabot edited a comment on pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
ursabot edited a comment on pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#issuecomment-1063339789


   Benchmark runs are scheduled for baseline = 76b1403aeed52989fc3c6f82a808142a9b536532 and contender = 55b7bb85de7bc66720367532407d8a86da693ddf. 55b7bb85de7bc66720367532407d8a86da693ddf is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
   Conbench compare runs links:
   [Finished :arrow_down:0.0% :arrow_up:0.0%] [ec2-t3-xlarge-us-east-2](https://conbench.ursa.dev/compare/runs/b66dd26d3c42475685463bed096610aa...3780c381b3b84caea6226d82e12e718d/)
   [Finished :arrow_down:0.17% :arrow_up:0.0%] [test-mac-arm](https://conbench.ursa.dev/compare/runs/b362ee33d6a54903b659b39ce786c6e1...67f776aba6234f649a850f2a67904b39/)
   [Scheduled] [ursa-i9-9960x](https://conbench.ursa.dev/compare/runs/40d99c8dc9094f1aa863dc7eb34f8625...9fea5ae056014fbbabc22ceed17af690/)
   [Finished :arrow_down:0.38% :arrow_up:0.0%] [ursa-thinkcentre-m75q](https://conbench.ursa.dev/compare/runs/93c8bb4ef9574a7d917f311151b209ed...6601286b5a56447e80c367f78e43c7b3/)
   Supported benchmarks:
   ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
   test-mac-arm: Supported benchmark langs: C++, Python, R
   ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
   ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java
   


-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r818260166



##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,170 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data \
+        clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.308 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.899 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  2.065 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.417 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  8.132 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [ 10.211 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:48 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  7.282 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 12.612 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 15.558 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  6.303 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.326 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 50.632 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  9.932 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 22.559 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  9.649 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 17.145 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 44.571 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  9.202 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [ 15.794 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [ 14.205 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [02:06 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 15.261 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Performance Testing
+===================
+
+Java module that contains performance tests is: `performance`

Review comment:
       Changed




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm commented on pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm commented on pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#issuecomment-1063292255


   +1, will merge on green


-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r819687660



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,224 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11. Consider: Battle tested by arrow CI checks: JRE 11 (defined: `java.yml`_, result: `java.runs`_)

Review comment:
       Updated




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r820789695



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,239 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+When IntelliJ open arrow java project its compiled automatically and show you maven modules inside root project and
+also offer a side bar to see profile and maven plugin configured by default.

Review comment:
       I don't think we need to explain all of this. Just something like
   
   ```
   IntelliJ can import Maven projects. To start working on Arrow in IntelliJ, just open the `java/` subdirectory of the Arrow repository.
   ```

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,239 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+When IntelliJ open arrow java project its compiled automatically and show you maven modules inside root project and
+also offer a side bar to see profile and maven plugin configured by default.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+Also IntelliJ offer options to configure custom run/debug configurations to setup maven module working directory,
+maven command line to run, profiles, configure JRE to use, add environment variables as some examples of these.
+Option available at: Run -> Edit Configurations.
+
+Let's create our maven configuration: java-dataset
+
+.. figure:: img/java_mvn_configuration.png
+   :scale: 50 %
+   :alt: Setup new maven configurations with working directory, command to run and profile used to build
+
+Let's define our JRE runner:
+
+.. figure:: img/java_jre_runner.png
+   :scale: 50 %
+   :alt: Setup maven configurations with JRE selected
+
+Let's configure additional environment variables:

Review comment:
       This is only necessary if we want to work with the JNI modules, right? We should explain that.

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,239 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+When IntelliJ open arrow java project its compiled automatically and show you maven modules inside root project and
+also offer a side bar to see profile and maven plugin configured by default.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+Also IntelliJ offer options to configure custom run/debug configurations to setup maven module working directory,
+maven command line to run, profiles, configure JRE to use, add environment variables as some examples of these.
+Option available at: Run -> Edit Configurations.
+
+Let's create our maven configuration: java-dataset
+
+.. figure:: img/java_mvn_configuration.png
+   :scale: 50 %
+   :alt: Setup new maven configurations with working directory, command to run and profile used to build
+
+Let's define our JRE runner:

Review comment:
       Is this actually necessary?

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,239 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+When IntelliJ open arrow java project its compiled automatically and show you maven modules inside root project and
+also offer a side bar to see profile and maven plugin configured by default.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+Also IntelliJ offer options to configure custom run/debug configurations to setup maven module working directory,
+maven command line to run, profiles, configure JRE to use, add environment variables as some examples of these.
+Option available at: Run -> Edit Configurations.
+
+Let's create our maven configuration: java-dataset
+
+.. figure:: img/java_mvn_configuration.png
+   :scale: 50 %
+   :alt: Setup new maven configurations with working directory, command to run and profile used to build
+
+Let's define our JRE runner:
+
+.. figure:: img/java_jre_runner.png
+   :scale: 50 %
+   :alt: Setup maven configurations with JRE selected
+
+Let's configure additional environment variables:
+
+.. figure:: img/java_jre_env_properties.png
+   :scale: 50 %
+   :alt: Setup maven configurations with environment variables and properties per building
+
+IntelliJ also, offer a run option button to runs configuration created. Option available at: Run -> Run 'java-dataset'.
+Let's run our java-dataset maven configuration created:

Review comment:
       ```suggestion
   Just like when using Maven directly, we can choose which Maven configuration to build and run within IntelliJ. For instance, to build and run the tests for the Dataset JNI module:
   ```

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,239 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+When IntelliJ open arrow java project its compiled automatically and show you maven modules inside root project and
+also offer a side bar to see profile and maven plugin configured by default.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+Also IntelliJ offer options to configure custom run/debug configurations to setup maven module working directory,
+maven command line to run, profiles, configure JRE to use, add environment variables as some examples of these.
+Option available at: Run -> Edit Configurations.
+
+Let's create our maven configuration: java-dataset
+
+.. figure:: img/java_mvn_configuration.png
+   :scale: 50 %
+   :alt: Setup new maven configurations with working directory, command to run and profile used to build
+
+Let's define our JRE runner:
+
+.. figure:: img/java_jre_runner.png
+   :scale: 50 %
+   :alt: Setup maven configurations with JRE selected
+
+Let's configure additional environment variables:
+
+.. figure:: img/java_jre_env_properties.png
+   :scale: 50 %
+   :alt: Setup maven configurations with environment variables and properties per building
+
+IntelliJ also, offer a run option button to runs configuration created. Option available at: Run -> Run 'java-dataset'.
+Let's run our java-dataset maven configuration created:
+
+.. figure:: img/java_run_mvn_configuration.png
+   :scale: 50 %
+   :alt: Option to run new maven configuration created
+
+Also you could see results of your run automatically on the Run Toolbar. Option available at: View -> Tool Windows -> Run
+
+.. figure:: img/java_run_mvn_configuration_result.png
+   :scale: 50 %
+   :alt: Results to run new maven configuration created

Review comment:
       I don't think this part is very useful. IntelliJ users presumably know how to run code.




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r819087810



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+JNI Libraries
+-------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building C & C++ JNI Libraries on MacOS
+---------------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Libraries
+----------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png

Review comment:
       Added




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r818688329



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building C & C++ JNI Libraries on Linux
+---------------------------------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building C & C++ JNI Libraries on MacOS
+---------------------------------------
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:

Review comment:
       Changed

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building C & C++ JNI Libraries on Linux
+---------------------------------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building C & C++ JNI Libraries on MacOS
+---------------------------------------
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Libraries
+----------------------------
+
+Java arrow-c-data maven profile:

Review comment:
       Changed




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r818259405



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        $GITHUB_WORKSPACE/java/c
+    $ cmake --build . --target install
+    $ ls -latr $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        $GITHUB_WORKSPACE/cpp
+    $ cmake --build . --target install
+    $ ls -latr  $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Build Java Modules That Consume C / C++ Libs
+++++++++++++++++++++++++++++++++++++++++++++
+
+Build Java C Data Interface
+###########################
+
+Java arrow-c-data maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Build Java C++ Interface
+########################
+
+Java arrow-jni maven profile (build ORC / Gandiva / Dataset):
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+Go to open java project and select java folder.

Review comment:
       Added

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        $GITHUB_WORKSPACE/java/c
+    $ cmake --build . --target install
+    $ ls -latr $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        $GITHUB_WORKSPACE/cpp
+    $ cmake --build . --target install
+    $ ls -latr  $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Build Java Modules That Consume C / C++ Libs
+++++++++++++++++++++++++++++++++++++++++++++
+
+Build Java C Data Interface
+###########################
+
+Java arrow-c-data maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Build Java C++ Interface
+########################
+
+Java arrow-jni maven profile (build ORC / Gandiva / Dataset):
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+
+Let's define our JRE runner:
+
+.. image:: img/java_jre_runner.png
+
+Let's configure additional environment properties:
+
+.. image:: img/java_jre_env_properties.png
+
+Let's run our java-dataset maven configuration:
+
+.. image:: img/java_run_mvn_configuration.png
+
+.. image:: img/java_run_mvn_configuration_result.png
+
+Common Errors
+=============
+
+1.- Errors related to:
+    - Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem)
+    - Could NOT find Lz4 (missing: LZ4_LIB)
+    - Could NOT find zstd (missing: ZSTD_LIB)
+
+    Consider to configure parameters that download software at the build time with:
+
+.. code-block::
+
+    -Dre2_SOURCE=BUNDLED \
+    -DBoost_SOURCE=BUNDLED \
+    -Dutf8proc_SOURCE=BUNDLED \
+    -DSnappy_SOURCE=BUNDLED \
+    -DORC_SOURCE=BUNDLED \
+    -DZLIB_SOURCE=BUNDLED \
+

Review comment:
       Added




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm commented on pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm commented on pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#issuecomment-1059141037


   To get CI to pass for now: we can copy the changes to ci/conda_env_cpp.txt from this PR: https://github.com/apache/arrow/pull/12320/files#diff-758844ffabc3a7dbed762fc3797febbe05f41bc9c675bfa9f4fc8dc89c91abfdR25


-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] github-actions[bot] commented on pull request #12534: [JAVA]: WIP - Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#issuecomment-1055783599


   <!--
     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.
   -->
   
   Thanks for opening a pull request!
   
   If this is not a [minor PR](https://github.com/apache/arrow/blob/master/CONTRIBUTING.md#Minor-Fixes). Could you open an issue for this pull request on JIRA? https://issues.apache.org/jira/browse/ARROW
   
   Opening JIRAs ahead of time contributes to the [Openness](http://theapacheway.com/open/#:~:text=Openness%20allows%20new%20users%20the,must%20happen%20in%20the%20open.) of the Apache Arrow project.
   
   Then could you also rename pull request title in the following format?
   
       ARROW-${JIRA_ID}: [${COMPONENT}] ${SUMMARY}
   
   or
   
       MINOR: [${COMPONENT}] ${SUMMARY}
   
   See also:
   
     * [Other pull requests](https://github.com/apache/arrow/pulls/)
     * [Contribution Guidelines - How to contribute patches](https://arrow.apache.org/docs/developers/contributing.html#how-to-contribute-patches)
   


-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r821195323



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,239 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+When IntelliJ open arrow java project its compiled automatically and show you maven modules inside root project and
+also offer a side bar to see profile and maven plugin configured by default.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+Also IntelliJ offer options to configure custom run/debug configurations to setup maven module working directory,
+maven command line to run, profiles, configure JRE to use, add environment variables as some examples of these.
+Option available at: Run -> Edit Configurations.

Review comment:
       Deleted




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r818688088



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building C & C++ JNI Libraries on Linux

Review comment:
       Changed




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r818280101



##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,170 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data \

Review comment:
       Changed




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm commented on a change in pull request #12534: [JAVA]: WIP - Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r817156534



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:

Review comment:
       ```suggestion
   .. _building-arrow-java:
   ```

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.

Review comment:
       ```suggestion
   Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
   ```

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery

Review comment:
       Let's not use the internal hooks, we can link to the Archery docs instead

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>

Review comment:
       Let's not use CI-specific variables, we can just get rid of the env var and use `./java_dist`, etc

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        $GITHUB_WORKSPACE/java/c
+    $ cmake --build . --target install
+    $ ls -latr $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        $GITHUB_WORKSPACE/cpp
+    $ cmake --build . --target install
+    $ ls -latr  $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Build Java Modules That Consume C / C++ Libs
+++++++++++++++++++++++++++++++++++++++++++++
+
+Build Java C Data Interface
+###########################
+
+Java arrow-c-data maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Build Java C++ Interface
+########################
+
+Java arrow-jni maven profile (build ORC / Gandiva / Dataset):
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+
+Let's define our JRE runner:
+
+.. image:: img/java_jre_runner.png
+
+Let's configure additional environment properties:
+
+.. image:: img/java_jre_env_properties.png
+
+Let's run our java-dataset maven configuration:
+
+.. image:: img/java_run_mvn_configuration.png
+
+.. image:: img/java_run_mvn_configuration_result.png
+
+Common Errors
+=============
+
+1.- Errors related to:
+    - Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem)
+    - Could NOT find Lz4 (missing: LZ4_LIB)
+    - Could NOT find zstd (missing: ZSTD_LIB)
+
+    Consider to configure parameters that download software at the build time with:

Review comment:
       ```suggestion
       Download the dependencies at build time:
   ```

##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,170 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data \
+        clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.308 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.899 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  2.065 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.417 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  8.132 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [ 10.211 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:48 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  7.282 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 12.612 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 15.558 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  6.303 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.326 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 50.632 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  9.932 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 22.559 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  9.649 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 17.145 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 44.571 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  9.202 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [ 15.794 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [ 14.205 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [02:06 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 15.261 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Performance Testing
+===================
+
+Java module that contains performance tests is: `performance`

Review comment:
       Backticks don't do what you want here, you want something like
   
   ```
   The ``arrow-performance`` module contains benchmarks.
   ```

##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,170 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data \
+        clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.308 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.899 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  2.065 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.417 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  8.132 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [ 10.211 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:48 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  7.282 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 12.612 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 15.558 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  6.303 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.326 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 50.632 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  9.932 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 22.559 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  9.649 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 17.145 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 44.571 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  9.202 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [ 15.794 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [ 14.205 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [02:06 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 15.261 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Performance Testing
+===================
+
+Java module that contains performance tests is: `performance`
+
+Let's configure our performance environment to run performance tests:
+
+- Install `benchmark`_
+- Install `archery`_
+- Install `conbench`_
+
+Lets execute benchmark tests:
+
+.. code-block::
+
+    $ cd benchmarks
+    $ conbench java-micro --help
+    $ conbench java-micro
+        --iterations=1
+        --commit=e90472e35b40f58b17d408438bb8de1641bfe6ef
+        --java-home=<absolute path to your java home>
+        --src=<absolute path to your arrow project>
+        --benchmark-filter=org.apache.arrow.adapter.AvroAdapterBenchmarks.testAvroToArrow
+    Benchmark                              Mode  Cnt       Score   Error  Units
+    AvroAdapterBenchmarks.testAvroToArrow  avgt       725545.783          ns/op
+    Time to POST http://localhost:5000/api/login/ 0.14911699295043945
+    Time to POST http://localhost:5000/api/benchmarks/ 0.06116318702697754
+
+Then go to: http://127.0.0.1:5000/ to see reports:
+
+UI Home:
+
+.. image:: img/conbench_ui.png
+
+UI Runs:
+
+.. image:: img/conbench_runs.png
+
+UI Benchmark:
+
+.. image:: img/conbench_benchmark.png
+
+Code Style
+==========
+
+Code style are configured at `java/dev/checkstyle`
+
+.. code-block::
+
+    <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>3.1.0</version>
+        <executions>
+            <execution>
+                <id>validate</id>
+                <phase>validate</phase>
+                <goals>
+                    <goal>check</goal>
+                </goals>
+            </execution>
+        </executions>
+        <configuration>
+            <configLocation>dev/checkstyle/checkstyle.xml</configLocation>
+            <headerLocation>dev/checkstyle/checkstyle.license</headerLocation>
+            <suppressionsLocation>dev/checkstyle/suppressions.xml</suppressionsLocation>
+            <includeTestSourceDirectory>true</includeTestSourceDirectory>
+            ...
+        </configuration>
+    </plugin>
+
+Validate check style configuration:

Review comment:
       "The Maven build will validate code against the Checkstyle configuration. You can also just check the style without building the project:"
   
   Maybe mention how to skip this check as well.

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation

Review comment:
       Maybe make this explicitly about "Installing JNI Modules"?

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:

Review comment:
       ```suggestion
   To build the default modules, go to the project root and execute:
   ```

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++

Review comment:
       There's getting to be too many levels of headings here, maybe we can remove this heading and make the headings "Building C++ JNI Libraries on Linux", "Building C++ JNI Libraries on MacOS", and "Building Arrow JNI Libraries"?

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        $GITHUB_WORKSPACE/java/c
+    $ cmake --build . --target install
+    $ ls -latr $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        $GITHUB_WORKSPACE/cpp
+    $ cmake --build . --target install
+    $ ls -latr  $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Build Java Modules That Consume C / C++ Libs
+++++++++++++++++++++++++++++++++++++++++++++
+
+Build Java C Data Interface
+###########################
+
+Java arrow-c-data maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Build Java C++ Interface
+########################
+
+Java arrow-jni maven profile (build ORC / Gandiva / Dataset):
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+
+Let's define our JRE runner:
+
+.. image:: img/java_jre_runner.png
+
+Let's configure additional environment properties:
+
+.. image:: img/java_jre_env_properties.png
+
+Let's run our java-dataset maven configuration:
+
+.. image:: img/java_run_mvn_configuration.png
+
+.. image:: img/java_run_mvn_configuration_result.png
+
+Common Errors
+=============
+
+1.- Errors related to:

Review comment:
       ```suggestion
   1. If the build cannot find dependencies, with errors like these:
   ```

##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,170 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data \

Review comment:
       Don't use CI-specific env vars.

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        $GITHUB_WORKSPACE/java/c
+    $ cmake --build . --target install
+    $ ls -latr $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        $GITHUB_WORKSPACE/cpp
+    $ cmake --build . --target install
+    $ ls -latr  $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Build Java Modules That Consume C / C++ Libs
+++++++++++++++++++++++++++++++++++++++++++++
+
+Build Java C Data Interface
+###########################
+
+Java arrow-c-data maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Build Java C++ Interface
+########################
+
+Java arrow-jni maven profile (build ORC / Gandiva / Dataset):
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+Go to open java project and select java folder.

Review comment:
       Add a section so it's clear this is for IntelliJ

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        $GITHUB_WORKSPACE/java/c
+    $ cmake --build . --target install
+    $ ls -latr $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        $GITHUB_WORKSPACE/cpp
+    $ cmake --build . --target install
+    $ ls -latr  $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Build Java Modules That Consume C / C++ Libs
+++++++++++++++++++++++++++++++++++++++++++++
+
+Build Java C Data Interface
+###########################
+
+Java arrow-c-data maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Build Java C++ Interface
+########################
+
+Java arrow-jni maven profile (build ORC / Gandiva / Dataset):
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+
+Let's define our JRE runner:
+
+.. image:: img/java_jre_runner.png
+
+Let's configure additional environment properties:
+
+.. image:: img/java_jre_env_properties.png
+
+Let's run our java-dataset maven configuration:
+
+.. image:: img/java_run_mvn_configuration.png
+
+.. image:: img/java_run_mvn_configuration_result.png
+
+Common Errors
+=============
+
+1.- Errors related to:
+    - Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem)
+    - Could NOT find Lz4 (missing: LZ4_LIB)
+    - Could NOT find zstd (missing: ZSTD_LIB)
+
+    Consider to configure parameters that download software at the build time with:
+
+.. code-block::

Review comment:
       This block needs to be indented more

##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,170 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+

Review comment:
       ```suggestion
   Unit tests are run by Maven during the build.
   
   To speed up the build, you can skip them by passing -DskipTests.
   ```

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        $GITHUB_WORKSPACE/java/c
+    $ cmake --build . --target install
+    $ ls -latr $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        $GITHUB_WORKSPACE/cpp
+    $ cmake --build . --target install
+    $ ls -latr  $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Build Java Modules That Consume C / C++ Libs
+++++++++++++++++++++++++++++++++++++++++++++
+
+Build Java C Data Interface
+###########################
+
+Java arrow-c-data maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Build Java C++ Interface
+########################
+
+Java arrow-jni maven profile (build ORC / Gandiva / Dataset):
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+
+Let's define our JRE runner:
+
+.. image:: img/java_jre_runner.png
+
+Let's configure additional environment properties:
+
+.. image:: img/java_jre_env_properties.png
+
+Let's run our java-dataset maven configuration:
+
+.. image:: img/java_run_mvn_configuration.png
+
+.. image:: img/java_run_mvn_configuration_result.png
+
+Common Errors
+=============
+
+1.- Errors related to:
+    - Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem)
+    - Could NOT find Lz4 (missing: LZ4_LIB)
+    - Could NOT find zstd (missing: ZSTD_LIB)
+
+    Consider to configure parameters that download software at the build time with:
+
+.. code-block::
+
+    -Dre2_SOURCE=BUNDLED \
+    -DBoost_SOURCE=BUNDLED \
+    -Dutf8proc_SOURCE=BUNDLED \
+    -DSnappy_SOURCE=BUNDLED \
+    -DORC_SOURCE=BUNDLED \
+    -DZLIB_SOURCE=BUNDLED \
+
+2.- Errors related to:
+    - Caused by: java.lang.NoSuchFieldException: reservedMemory.
+
+    We could move from classBits.getDeclaredField("reservedMemory") to classBits.getDeclaredField("RESERVED_MEMORY")

Review comment:
       Remove this section and just file a JIRA

##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,170 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data \
+        clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.308 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.899 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  2.065 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.417 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  8.132 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [ 10.211 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:48 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  7.282 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 12.612 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 15.558 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  6.303 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.326 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 50.632 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  9.932 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 22.559 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  9.649 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 17.145 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 44.571 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  9.202 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [ 15.794 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [ 14.205 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [02:06 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 15.261 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Performance Testing
+===================
+
+Java module that contains performance tests is: `performance`
+
+Let's configure our performance environment to run performance tests:

Review comment:
       ```suggestion
   Let's configure our environment to run performance tests:
   ```

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        $GITHUB_WORKSPACE/java/c
+    $ cmake --build . --target install
+    $ ls -latr $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        $GITHUB_WORKSPACE/cpp
+    $ cmake --build . --target install
+    $ ls -latr  $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Build Java Modules That Consume C / C++ Libs
+++++++++++++++++++++++++++++++++++++++++++++
+
+Build Java C Data Interface
+###########################
+
+Java arrow-c-data maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Build Java C++ Interface
+########################
+
+Java arrow-jni maven profile (build ORC / Gandiva / Dataset):
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+
+Let's define our JRE runner:
+
+.. image:: img/java_jre_runner.png
+
+Let's configure additional environment properties:
+
+.. image:: img/java_jre_env_properties.png
+
+Let's run our java-dataset maven configuration:
+
+.. image:: img/java_run_mvn_configuration.png
+
+.. image:: img/java_run_mvn_configuration_result.png
+
+Common Errors
+=============
+
+1.- Errors related to:
+    - Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem)
+    - Could NOT find Lz4 (missing: LZ4_LIB)
+    - Could NOT find zstd (missing: ZSTD_LIB)
+
+    Consider to configure parameters that download software at the build time with:
+
+.. code-block::
+
+    -Dre2_SOURCE=BUNDLED \
+    -DBoost_SOURCE=BUNDLED \
+    -Dutf8proc_SOURCE=BUNDLED \
+    -DSnappy_SOURCE=BUNDLED \
+    -DORC_SOURCE=BUNDLED \
+    -DZLIB_SOURCE=BUNDLED \
+
+2.- Errors related to:

Review comment:
       ```suggestion
   2. Errors related to:
   ```

##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,170 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data \
+        clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.308 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.899 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  2.065 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.417 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  8.132 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [ 10.211 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:48 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  7.282 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 12.612 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 15.558 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  6.303 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.326 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 50.632 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  9.932 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 22.559 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  9.649 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 17.145 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 44.571 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  9.202 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [ 15.794 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [ 14.205 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [02:06 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 15.261 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Performance Testing
+===================
+
+Java module that contains performance tests is: `performance`
+
+Let's configure our performance environment to run performance tests:
+
+- Install `benchmark`_
+- Install `archery`_
+- Install `conbench`_
+
+Lets execute benchmark tests:
+
+.. code-block::
+
+    $ cd benchmarks
+    $ conbench java-micro --help
+    $ conbench java-micro
+        --iterations=1
+        --commit=e90472e35b40f58b17d408438bb8de1641bfe6ef
+        --java-home=<absolute path to your java home>
+        --src=<absolute path to your arrow project>
+        --benchmark-filter=org.apache.arrow.adapter.AvroAdapterBenchmarks.testAvroToArrow
+    Benchmark                              Mode  Cnt       Score   Error  Units
+    AvroAdapterBenchmarks.testAvroToArrow  avgt       725545.783          ns/op
+    Time to POST http://localhost:5000/api/login/ 0.14911699295043945
+    Time to POST http://localhost:5000/api/benchmarks/ 0.06116318702697754
+
+Then go to: http://127.0.0.1:5000/ to see reports:
+
+UI Home:
+
+.. image:: img/conbench_ui.png
+
+UI Runs:
+
+.. image:: img/conbench_runs.png
+
+UI Benchmark:
+
+.. image:: img/conbench_benchmark.png
+
+Code Style
+==========
+
+Code style are configured at `java/dev/checkstyle`
+
+.. code-block::
+
+    <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>3.1.0</version>
+        <executions>
+            <execution>
+                <id>validate</id>
+                <phase>validate</phase>
+                <goals>
+                    <goal>check</goal>
+                </goals>
+            </execution>
+        </executions>
+        <configuration>
+            <configLocation>dev/checkstyle/checkstyle.xml</configLocation>
+            <headerLocation>dev/checkstyle/checkstyle.license</headerLocation>
+            <suppressionsLocation>dev/checkstyle/suppressions.xml</suppressionsLocation>
+            <includeTestSourceDirectory>true</includeTestSourceDirectory>
+            ...
+        </configuration>
+    </plugin>

Review comment:
       Don't show this here, just link to the checkstyle configuration.

##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,170 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data \
+        clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.308 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.899 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  2.065 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.417 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  8.132 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [ 10.211 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:48 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  7.282 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 12.612 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 15.558 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  6.303 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.326 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 50.632 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  9.932 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 22.559 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  9.649 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 17.145 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 44.571 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  9.202 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [ 15.794 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [ 14.205 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [02:06 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 15.261 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Performance Testing
+===================
+
+Java module that contains performance tests is: `performance`
+
+Let's configure our performance environment to run performance tests:
+
+- Install `benchmark`_
+- Install `archery`_
+- Install `conbench`_

Review comment:
       I believe this works without conbench, you just won't get the local UI? 

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        $GITHUB_WORKSPACE/java/c
+    $ cmake --build . --target install
+    $ ls -latr $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        $GITHUB_WORKSPACE/cpp
+    $ cmake --build . --target install
+    $ ls -latr  $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Build Java Modules That Consume C / C++ Libs
+++++++++++++++++++++++++++++++++++++++++++++
+
+Build Java C Data Interface
+###########################
+
+Java arrow-c-data maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Build Java C++ Interface
+########################
+
+Java arrow-jni maven profile (build ORC / Gandiva / Dataset):
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+
+Let's define our JRE runner:
+
+.. image:: img/java_jre_runner.png
+
+Let's configure additional environment properties:
+
+.. image:: img/java_jre_env_properties.png
+
+Let's run our java-dataset maven configuration:
+
+.. image:: img/java_run_mvn_configuration.png
+
+.. image:: img/java_run_mvn_configuration_result.png
+
+Common Errors
+=============
+
+1.- Errors related to:
+    - Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem)
+    - Could NOT find Lz4 (missing: LZ4_LIB)
+    - Could NOT find zstd (missing: ZSTD_LIB)
+
+    Consider to configure parameters that download software at the build time with:
+
+.. code-block::
+
+    -Dre2_SOURCE=BUNDLED \
+    -DBoost_SOURCE=BUNDLED \
+    -Dutf8proc_SOURCE=BUNDLED \
+    -DSnappy_SOURCE=BUNDLED \
+    -DORC_SOURCE=BUNDLED \
+    -DZLIB_SOURCE=BUNDLED \
+

Review comment:
       We can link to the C++ docs e.g. https://arrow.apache.org/docs/developers/cpp/building.html#individual-dependency-resolution

##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,170 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data \
+        clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.308 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.899 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  2.065 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.417 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  8.132 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [ 10.211 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:48 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  7.282 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 12.612 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 15.558 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  6.303 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.326 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 50.632 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  9.932 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 22.559 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  9.649 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 17.145 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 44.571 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  9.202 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [ 15.794 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [ 14.205 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [02:06 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 15.261 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Performance Testing
+===================
+
+Java module that contains performance tests is: `performance`
+
+Let's configure our performance environment to run performance tests:
+
+- Install `benchmark`_
+- Install `archery`_
+- Install `conbench`_
+
+Lets execute benchmark tests:
+
+.. code-block::
+
+    $ cd benchmarks
+    $ conbench java-micro --help
+    $ conbench java-micro
+        --iterations=1
+        --commit=e90472e35b40f58b17d408438bb8de1641bfe6ef
+        --java-home=<absolute path to your java home>
+        --src=<absolute path to your arrow project>
+        --benchmark-filter=org.apache.arrow.adapter.AvroAdapterBenchmarks.testAvroToArrow
+    Benchmark                              Mode  Cnt       Score   Error  Units
+    AvroAdapterBenchmarks.testAvroToArrow  avgt       725545.783          ns/op
+    Time to POST http://localhost:5000/api/login/ 0.14911699295043945
+    Time to POST http://localhost:5000/api/benchmarks/ 0.06116318702697754
+
+Then go to: http://127.0.0.1:5000/ to see reports:
+
+UI Home:
+
+.. image:: img/conbench_ui.png
+
+UI Runs:
+
+.. image:: img/conbench_runs.png
+
+UI Benchmark:
+
+.. image:: img/conbench_benchmark.png
+
+Code Style
+==========
+
+Code style are configured at `java/dev/checkstyle`

Review comment:
       Backticks don't do what you want in reStructuredText, use double-backticks




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r822939353



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,214 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------

Review comment:
       Changed




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r819688099



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,224 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11. Consider: Battle tested by arrow CI checks: JRE 11 (defined: `java.yml`_, result: `java.runs`_)
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+For Build C Data Interface lib & Build C++ Libs (`archery`_ needs docker and docker compose installed locally):
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+   :alt: An example image to opening java project
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+   :alt: An example image to create new maven configurations and parameters needed

Review comment:
       Changed




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r819859939



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,231 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:

Review comment:
       Again, for all of these, we should say exactly what the user needs to change. A screenshot isn't enough. Or in other words, if the user _can't see the screenshot_, they should still know what to do.
   
   Also note that for `.. figure::`, the caption is _not_ the alt text. The caption is text that is part of the figure directive.




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] ursabot commented on pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
ursabot commented on pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#issuecomment-1063339789


   Benchmark runs are scheduled for baseline = 76b1403aeed52989fc3c6f82a808142a9b536532 and contender = 55b7bb85de7bc66720367532407d8a86da693ddf. 55b7bb85de7bc66720367532407d8a86da693ddf is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
   Conbench compare runs links:
   [Scheduled] [ec2-t3-xlarge-us-east-2](https://conbench.ursa.dev/compare/runs/b66dd26d3c42475685463bed096610aa...3780c381b3b84caea6226d82e12e718d/)
   [Scheduled] [test-mac-arm](https://conbench.ursa.dev/compare/runs/b362ee33d6a54903b659b39ce786c6e1...67f776aba6234f649a850f2a67904b39/)
   [Scheduled] [ursa-i9-9960x](https://conbench.ursa.dev/compare/runs/40d99c8dc9094f1aa863dc7eb34f8625...9fea5ae056014fbbabc22ceed17af690/)
   [Scheduled] [ursa-thinkcentre-m75q](https://conbench.ursa.dev/compare/runs/93c8bb4ef9574a7d917f311151b209ed...6601286b5a56447e80c367f78e43c7b3/)
   Supported benchmarks:
   ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
   test-mac-arm: Supported benchmark langs: C++, Python, R
   ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
   ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java
   


-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r823016590



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,202 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ
+--------
+
+To start working on Arrow in IntelliJ, just open the `java/`
+subdirectory of the Arrow repository.
+
+* For JDK 8 consider to disable `error-prone` profile to project build successfully.

Review comment:
       ```suggestion
   * For JDK 8, disable the ``error-prone`` profile to build the project successfully.
   ```

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,202 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ
+--------
+
+To start working on Arrow in IntelliJ, just open the `java/`
+subdirectory of the Arrow repository.
+
+* For JDK 8 consider to disable `error-prone` profile to project build successfully.
+* For JDK 11 project build successfully with all profiles enabled by default.

Review comment:
       ```suggestion
   * For JDK 11, the project should build successfully with the default profiles.
   ```




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r818259789



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++

Review comment:
       Changed

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation

Review comment:
       Changed to: headings "Building C++ JNI Libraries on Linux", "Building C++ JNI Libraries on MacOS", and "Building Arrow JNI Libraries"




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r818259910



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery

Review comment:
       Updated




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r822939248



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,214 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+IntelliJ can import Maven projects. To start working on Arrow in IntelliJ, just open the `java/`
+subdirectory of the Arrow repository.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+An option to understand the arrow java code is running the java unit test in debugging mode to see
+objects initialized parameters and values assigned.
+
+Let's debug `TestArrowBuf.java`_ to see `ArrowBuf` object initialization. Go to the java class `TestArrowBuf.java`
+and method `testSetBytesBigEndian`, add breakpoints needed, right click on the method name and select option
+mention `Debug 'testSetBytesBigEndian()'` and inspect te variable when debug mode arrive to `ArrowBuf` variable.
+
+.. figure:: img/java_debug_mode.png
+   :scale: 50 %
+   :alt: An ArrowBuf variable initialized with parameters and values assigned.

Review comment:
       Updated




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r820786347



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,239 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+When IntelliJ open arrow java project its compiled automatically and show you maven modules inside root project and
+also offer a side bar to see profile and maven plugin configured by default.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+Also IntelliJ offer options to configure custom run/debug configurations to setup maven module working directory,
+maven command line to run, profiles, configure JRE to use, add environment variables as some examples of these.
+Option available at: Run -> Edit Configurations.

Review comment:
       We shouldn't need to explain how to use IntelliJ.

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,239 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+When IntelliJ open arrow java project its compiled automatically and show you maven modules inside root project and
+also offer a side bar to see profile and maven plugin configured by default.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+Also IntelliJ offer options to configure custom run/debug configurations to setup maven module working directory,
+maven command line to run, profiles, configure JRE to use, add environment variables as some examples of these.
+Option available at: Run -> Edit Configurations.
+
+Let's create our maven configuration: java-dataset
+
+.. figure:: img/java_mvn_configuration.png
+   :scale: 50 %
+   :alt: Setup new maven configurations with working directory, command to run and profile used to build

Review comment:
       Again: we need to say what settings we want people to change! For instance: "Set the profile to 'arrow-jni' and ...". 
   
   If these are obvious or if there's nothing to change, then remove the screenshot, it's just clutter otherwise. 




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r821195716



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,239 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+When IntelliJ open arrow java project its compiled automatically and show you maven modules inside root project and
+also offer a side bar to see profile and maven plugin configured by default.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+Also IntelliJ offer options to configure custom run/debug configurations to setup maven module working directory,
+maven command line to run, profiles, configure JRE to use, add environment variables as some examples of these.
+Option available at: Run -> Edit Configurations.
+
+Let's create our maven configuration: java-dataset
+
+.. figure:: img/java_mvn_configuration.png
+   :scale: 50 %
+   :alt: Setup new maven configurations with working directory, command to run and profile used to build

Review comment:
       Changed to explain how to debug classes to inspect values assigned to variable.

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,239 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+When IntelliJ open arrow java project its compiled automatically and show you maven modules inside root project and
+also offer a side bar to see profile and maven plugin configured by default.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+Also IntelliJ offer options to configure custom run/debug configurations to setup maven module working directory,
+maven command line to run, profiles, configure JRE to use, add environment variables as some examples of these.
+Option available at: Run -> Edit Configurations.
+
+Let's create our maven configuration: java-dataset
+
+.. figure:: img/java_mvn_configuration.png
+   :scale: 50 %
+   :alt: Setup new maven configurations with working directory, command to run and profile used to build
+
+Let's define our JRE runner:

Review comment:
       Deleted




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm commented on pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm commented on pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#issuecomment-1059462094


   Also, if you rebase, CI should be 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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r819047933



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+JNI Libraries

Review comment:
       "Building JNI Libraries on Linux"?

##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,123 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+Unit tests are run by Maven during the build.
+
+To speed up the build, you can skip them by passing -DskipTests.
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data \
+        clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.308 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.899 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  2.065 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.417 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  8.132 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [ 10.211 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:48 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  7.282 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 12.612 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 15.558 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  6.303 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.326 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 50.632 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  9.932 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 22.559 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  9.649 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 17.145 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 44.571 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  9.202 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [ 15.794 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [ 14.205 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [02:06 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 15.261 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Performance Testing
+===================
+
+The ``arrow-performance`` module contains benchmarks.
+
+Let's configure our environment to run performance tests:
+
+- Install `benchmark`_
+- Install `archery`_
+
+In case you need to see your performance tests on the UI, then, configure (optional):
+
+- Install `conbench`_
+
+Lets execute benchmark tests:
+
+.. code-block::
+
+    $ cd benchmarks
+    $ conbench java-micro --help
+    $ conbench java-micro
+        --iterations=1
+        --commit=e90472e35b40f58b17d408438bb8de1641bfe6ef
+        --java-home=<absolute path to your java home>
+        --src=<absolute path to your arrow project>
+        --benchmark-filter=org.apache.arrow.adapter.AvroAdapterBenchmarks.testAvroToArrow
+    Benchmark                              Mode  Cnt       Score   Error  Units
+    AvroAdapterBenchmarks.testAvroToArrow  avgt       725545.783          ns/op
+    Time to POST http://localhost:5000/api/login/ 0.14911699295043945
+    Time to POST http://localhost:5000/api/benchmarks/ 0.06116318702697754
+
+Then go to: http://127.0.0.1:5000/ to see reports:
+
+UI Home:
+
+.. image:: img/conbench_ui.png
+
+UI Runs:
+
+.. image:: img/conbench_runs.png
+
+UI Benchmark:
+
+.. image:: img/conbench_benchmark.png
+
+Code Style
+==========
+
+Code style are configured at ``java/dev/checkstyle`` (More detail at `checkstyle`_)

Review comment:
       ```suggestion
   Code style is enforced with Checkstyle. The configuration is located at `checkstyle`_.
   ```

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+JNI Libraries
+-------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building C & C++ JNI Libraries on MacOS
+---------------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Libraries

Review comment:
       "Building Arrow JNI Modules"?

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+JNI Libraries
+-------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building C & C++ JNI Libraries on MacOS
+---------------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Libraries
+----------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png

Review comment:
       Each of these images needs text to describe what exactly the user should be changing.

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+JNI Libraries
+-------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building C & C++ JNI Libraries on MacOS
+---------------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Libraries
+----------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+
+Let's define our JRE runner:
+
+.. image:: img/java_jre_runner.png
+
+Let's configure additional environment properties:

Review comment:
       ```suggestion
   Let's configure additional environment variables:
   ```

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+JNI Libraries
+-------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building C & C++ JNI Libraries on MacOS

Review comment:
       "Building JNI Libraries on MacOS"?

##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,123 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+Unit tests are run by Maven during the build.
+
+To speed up the build, you can skip them by passing -DskipTests.
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data \
+        clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.308 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.899 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  2.065 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.417 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  8.132 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [ 10.211 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:48 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  7.282 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 12.612 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 15.558 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  6.303 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.326 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 50.632 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  9.932 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 22.559 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  9.649 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 17.145 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 44.571 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  9.202 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [ 15.794 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [ 14.205 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [02:06 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 15.261 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Performance Testing
+===================
+
+The ``arrow-performance`` module contains benchmarks.
+
+Let's configure our environment to run performance tests:
+
+- Install `benchmark`_
+- Install `archery`_
+
+In case you need to see your performance tests on the UI, then, configure (optional):
+
+- Install `conbench`_
+
+Lets execute benchmark tests:
+
+.. code-block::
+
+    $ cd benchmarks
+    $ conbench java-micro --help
+    $ conbench java-micro
+        --iterations=1
+        --commit=e90472e35b40f58b17d408438bb8de1641bfe6ef
+        --java-home=<absolute path to your java home>
+        --src=<absolute path to your arrow project>
+        --benchmark-filter=org.apache.arrow.adapter.AvroAdapterBenchmarks.testAvroToArrow
+    Benchmark                              Mode  Cnt       Score   Error  Units
+    AvroAdapterBenchmarks.testAvroToArrow  avgt       725545.783          ns/op
+    Time to POST http://localhost:5000/api/login/ 0.14911699295043945
+    Time to POST http://localhost:5000/api/benchmarks/ 0.06116318702697754
+
+Then go to: http://127.0.0.1:5000/ to see reports:
+
+UI Home:
+
+.. image:: img/conbench_ui.png
+
+UI Runs:
+
+.. image:: img/conbench_runs.png
+
+UI Benchmark:
+
+.. image:: img/conbench_benchmark.png
+
+Code Style
+==========
+
+Code style are configured at ``java/dev/checkstyle`` (More detail at `checkstyle`_)
+
+The Maven build will validate code against the Checkstyle configuration.
+You can also just check the style without building the project.

Review comment:
       How?




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] BryanCutler commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
BryanCutler commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r819187786



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,298 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\

Review comment:
       not sure you need to include Reactor Summary as it might change in the future

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,298 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building JNI Libraries on Linux
+-------------------------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.

Review comment:
       Build -> building? Actually, I'm a little confused by this line, are you trying to say to build the C/C++, it requires Docker etc?

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,298 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11

Review comment:
       JDK 8 or above?  Might be worth to mention versions above what is currently in tests aren't guaranteed to work.

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,298 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building JNI Libraries on Linux
+-------------------------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014

Review comment:
       can you link to archery setup doc?

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,298 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building JNI Libraries on Linux
+-------------------------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+   :alt: An example image for opening java project
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+   :alt: An example image for create new maven configurations and parameters needed

Review comment:
       image for -> image to




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r819687552



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,298 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building JNI Libraries on Linux
+-------------------------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.

Review comment:
       Thanks, changed




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r822107907



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,214 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+IntelliJ can import Maven projects. To start working on Arrow in IntelliJ, just open the `java/`
+subdirectory of the Arrow repository.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+An option to understand the arrow java code is running the java unit test in debugging mode to see
+objects initialized parameters and values assigned.
+
+Let's debug `TestArrowBuf.java`_ to see `ArrowBuf` object initialization. Go to the java class `TestArrowBuf.java`
+and method `testSetBytesBigEndian`, add breakpoints needed, right click on the method name and select option
+mention `Debug 'testSetBytesBigEndian()'` and inspect te variable when debug mode arrive to `ArrowBuf` variable.
+
+.. figure:: img/java_debug_mode.png
+   :scale: 50 %
+   :alt: An ArrowBuf variable initialized with parameters and values assigned.

Review comment:
       The other thing is that I recall builds don't work for me as the generated code is not indexed by IntelliJ by default. But that may be down to doing a build instead of a Maven build.




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r819087363



##########
File path: docs/source/developers/java/development.rst
##########
@@ -0,0 +1,123 @@
+.. 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.
+
+.. highlight:: console
+
+======================
+Development Guidelines
+======================
+
+.. contents::
+
+Unit Testing
+============
+Unit tests are run by Maven during the build.
+
+To speed up the build, you can skip them by passing -DskipTests.
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn \
+        -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni \
+        -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data \
+        clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.308 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.899 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  2.065 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.417 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  8.132 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [ 10.211 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:48 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  7.282 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 12.612 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 15.558 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  6.303 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.326 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 50.632 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  9.932 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 22.559 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  9.649 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 17.145 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 44.571 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  9.202 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [ 15.794 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [ 14.205 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [02:06 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 15.261 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Performance Testing
+===================
+
+The ``arrow-performance`` module contains benchmarks.
+
+Let's configure our environment to run performance tests:
+
+- Install `benchmark`_
+- Install `archery`_
+
+In case you need to see your performance tests on the UI, then, configure (optional):
+
+- Install `conbench`_
+
+Lets execute benchmark tests:
+
+.. code-block::
+
+    $ cd benchmarks
+    $ conbench java-micro --help
+    $ conbench java-micro
+        --iterations=1
+        --commit=e90472e35b40f58b17d408438bb8de1641bfe6ef
+        --java-home=<absolute path to your java home>
+        --src=<absolute path to your arrow project>
+        --benchmark-filter=org.apache.arrow.adapter.AvroAdapterBenchmarks.testAvroToArrow
+    Benchmark                              Mode  Cnt       Score   Error  Units
+    AvroAdapterBenchmarks.testAvroToArrow  avgt       725545.783          ns/op
+    Time to POST http://localhost:5000/api/login/ 0.14911699295043945
+    Time to POST http://localhost:5000/api/benchmarks/ 0.06116318702697754
+
+Then go to: http://127.0.0.1:5000/ to see reports:
+
+UI Home:
+
+.. image:: img/conbench_ui.png
+
+UI Runs:
+
+.. image:: img/conbench_runs.png
+
+UI Benchmark:
+
+.. image:: img/conbench_benchmark.png
+
+Code Style
+==========
+
+Code style are configured at ``java/dev/checkstyle`` (More detail at `checkstyle`_)
+
+The Maven build will validate code against the Checkstyle configuration.
+You can also just check the style without building the project.

Review comment:
       Added mvn command




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r819550179



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,224 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup

Review comment:
       ```suggestion
   System Setup
   ```

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,224 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11. Consider: Battle tested by arrow CI checks: JRE 11 (defined: `java.yml`_, result: `java.runs`_)

Review comment:
       What does this mean? Can we just say "JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI"? we don't need to link to GitHub Actions here.

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,224 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11. Consider: Battle tested by arrow CI checks: JRE 11 (defined: `java.yml`_, result: `java.runs`_)
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+For Build C Data Interface lib & Build C++ Libs (`archery`_ needs docker and docker compose installed locally):
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+   :alt: An example image to opening java project
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+   :alt: An example image to create new maven configurations and parameters needed

Review comment:
       Specifically, we should say which settings need to be changed to which values.
   
   Also: do these `alt` blocks show up in the text? I think we should use the [figure directive](https://docutils.sourceforge.io/docs/ref/rst/directives.html#figure) which allows a caption.

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,224 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11. Consider: Battle tested by arrow CI checks: JRE 11 (defined: `java.yml`_, result: `java.runs`_)
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+For Build C Data Interface lib & Build C++ Libs (`archery`_ needs docker and docker compose installed locally):
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+   :alt: An example image to opening java project

Review comment:
       It's already an image, we don't need to describe that. "A newly opened Arrow project in IntelliJ" or something like that.




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] github-actions[bot] commented on pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#issuecomment-1056900553


   https://issues.apache.org/jira/browse/ARROW-15178


-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r819548966



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,298 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building JNI Libraries on Linux
+-------------------------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.

Review comment:
       I guess we can be more explicit. "First, we need to build the C++ shared libraries that the JNI bindings will use. We can build these manually (link to C++ documentation here), or we can use Archery to build them using a Docker container. This will require installing Docker, Docker Compose, and Archery."




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] ursabot edited a comment on pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
ursabot edited a comment on pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#issuecomment-1063339789


   Benchmark runs are scheduled for baseline = 76b1403aeed52989fc3c6f82a808142a9b536532 and contender = 55b7bb85de7bc66720367532407d8a86da693ddf. 55b7bb85de7bc66720367532407d8a86da693ddf is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
   Conbench compare runs links:
   [Finished :arrow_down:0.0% :arrow_up:0.0%] [ec2-t3-xlarge-us-east-2](https://conbench.ursa.dev/compare/runs/b66dd26d3c42475685463bed096610aa...3780c381b3b84caea6226d82e12e718d/)
   [Scheduled] [test-mac-arm](https://conbench.ursa.dev/compare/runs/b362ee33d6a54903b659b39ce786c6e1...67f776aba6234f649a850f2a67904b39/)
   [Scheduled] [ursa-i9-9960x](https://conbench.ursa.dev/compare/runs/40d99c8dc9094f1aa863dc7eb34f8625...9fea5ae056014fbbabc22ceed17af690/)
   [Finished :arrow_down:0.38% :arrow_up:0.0%] [ursa-thinkcentre-m75q](https://conbench.ursa.dev/compare/runs/93c8bb4ef9574a7d917f311151b209ed...6601286b5a56447e80c367f78e43c7b3/)
   Supported benchmarks:
   ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
   test-mac-arm: Supported benchmark langs: C++, Python, R
   ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
   ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java
   


-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] ursabot edited a comment on pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
ursabot edited a comment on pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#issuecomment-1063339789


   Benchmark runs are scheduled for baseline = 76b1403aeed52989fc3c6f82a808142a9b536532 and contender = 55b7bb85de7bc66720367532407d8a86da693ddf. 55b7bb85de7bc66720367532407d8a86da693ddf is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
   Conbench compare runs links:
   [Finished :arrow_down:0.0% :arrow_up:0.0%] [ec2-t3-xlarge-us-east-2](https://conbench.ursa.dev/compare/runs/b66dd26d3c42475685463bed096610aa...3780c381b3b84caea6226d82e12e718d/)
   [Scheduled] [test-mac-arm](https://conbench.ursa.dev/compare/runs/b362ee33d6a54903b659b39ce786c6e1...67f776aba6234f649a850f2a67904b39/)
   [Scheduled] [ursa-i9-9960x](https://conbench.ursa.dev/compare/runs/40d99c8dc9094f1aa863dc7eb34f8625...9fea5ae056014fbbabc22ceed17af690/)
   [Scheduled] [ursa-thinkcentre-m75q](https://conbench.ursa.dev/compare/runs/93c8bb4ef9574a7d917f311151b209ed...6601286b5a56447e80c367f78e43c7b3/)
   Supported benchmarks:
   ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
   test-mac-arm: Supported benchmark langs: C++, Python, R
   ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
   ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java
   


-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r822106822



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,214 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+IntelliJ can import Maven projects. To start working on Arrow in IntelliJ, just open the `java/`
+subdirectory of the Arrow repository.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+An option to understand the arrow java code is running the java unit test in debugging mode to see
+objects initialized parameters and values assigned.
+
+Let's debug `TestArrowBuf.java`_ to see `ArrowBuf` object initialization. Go to the java class `TestArrowBuf.java`
+and method `testSetBytesBigEndian`, add breakpoints needed, right click on the method name and select option
+mention `Debug 'testSetBytesBigEndian()'` and inspect te variable when debug mode arrive to `ArrowBuf` variable.
+
+.. figure:: img/java_debug_mode.png
+   :scale: 50 %
+   :alt: An ArrowBuf variable initialized with parameters and values assigned.

Review comment:
       Oh, ok, I get it. Let me test error-prone and add if is something is needed, if not only add  a text mention open the project for modules needed




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r821196289



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,239 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+When IntelliJ open arrow java project its compiled automatically and show you maven modules inside root project and
+also offer a side bar to see profile and maven plugin configured by default.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+Also IntelliJ offer options to configure custom run/debug configurations to setup maven module working directory,
+maven command line to run, profiles, configure JRE to use, add environment variables as some examples of these.
+Option available at: Run -> Edit Configurations.
+
+Let's create our maven configuration: java-dataset
+
+.. figure:: img/java_mvn_configuration.png
+   :scale: 50 %
+   :alt: Setup new maven configurations with working directory, command to run and profile used to build
+
+Let's define our JRE runner:
+
+.. figure:: img/java_jre_runner.png
+   :scale: 50 %
+   :alt: Setup maven configurations with JRE selected
+
+Let's configure additional environment variables:
+
+.. figure:: img/java_jre_env_properties.png
+   :scale: 50 %
+   :alt: Setup maven configurations with environment variables and properties per building
+
+IntelliJ also, offer a run option button to runs configuration created. Option available at: Run -> Run 'java-dataset'.
+Let's run our java-dataset maven configuration created:

Review comment:
       Section deleted

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,239 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System Setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+First, we need to build the `C++ shared libraries`_ that the JNI bindings will use.
+We can build these manually or we can use `Archery`_ to build them using a Docker container
+(This will require installing Docker, Docker Compose, and Archery).
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+When IntelliJ open arrow java project its compiled automatically and show you maven modules inside root project and
+also offer a side bar to see profile and maven plugin configured by default.
+
+.. figure:: img/java_welcome.png
+   :scale: 50 %
+   :alt: A newly opened Arrow project
+
+Also IntelliJ offer options to configure custom run/debug configurations to setup maven module working directory,
+maven command line to run, profiles, configure JRE to use, add environment variables as some examples of these.
+Option available at: Run -> Edit Configurations.
+
+Let's create our maven configuration: java-dataset
+
+.. figure:: img/java_mvn_configuration.png
+   :scale: 50 %
+   :alt: Setup new maven configurations with working directory, command to run and profile used to build
+
+Let's define our JRE runner:
+
+.. figure:: img/java_jre_runner.png
+   :scale: 50 %
+   :alt: Setup maven configurations with JRE selected
+
+Let's configure additional environment variables:
+
+.. figure:: img/java_jre_env_properties.png
+   :scale: 50 %
+   :alt: Setup maven configurations with environment variables and properties per building
+
+IntelliJ also, offer a run option button to runs configuration created. Option available at: Run -> Run 'java-dataset'.
+Let's run our java-dataset maven configuration created:
+
+.. figure:: img/java_run_mvn_configuration.png
+   :scale: 50 %
+   :alt: Option to run new maven configuration created
+
+Also you could see results of your run automatically on the Run Toolbar. Option available at: View -> Tool Windows -> Run
+
+.. figure:: img/java_run_mvn_configuration_result.png
+   :scale: 50 %
+   :alt: Results to run new maven configuration created

Review comment:
       Deleted




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm closed pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm closed pull request #12534:
URL: https://github.com/apache/arrow/pull/12534


   


-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] ursabot edited a comment on pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
ursabot edited a comment on pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#issuecomment-1063339789


   Benchmark runs are scheduled for baseline = 76b1403aeed52989fc3c6f82a808142a9b536532 and contender = 55b7bb85de7bc66720367532407d8a86da693ddf. 55b7bb85de7bc66720367532407d8a86da693ddf is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
   Conbench compare runs links:
   [Finished :arrow_down:0.0% :arrow_up:0.0%] [ec2-t3-xlarge-us-east-2](https://conbench.ursa.dev/compare/runs/b66dd26d3c42475685463bed096610aa...3780c381b3b84caea6226d82e12e718d/)
   [Finished :arrow_down:0.17% :arrow_up:0.0%] [test-mac-arm](https://conbench.ursa.dev/compare/runs/b362ee33d6a54903b659b39ce786c6e1...67f776aba6234f649a850f2a67904b39/)
   [Finished :arrow_down:2.86% :arrow_up:0.0%] [ursa-i9-9960x](https://conbench.ursa.dev/compare/runs/40d99c8dc9094f1aa863dc7eb34f8625...9fea5ae056014fbbabc22ceed17af690/)
   [Finished :arrow_down:0.38% :arrow_up:0.0%] [ursa-thinkcentre-m75q](https://conbench.ursa.dev/compare/runs/93c8bb4ef9574a7d917f311151b209ed...6601286b5a56447e80c367f78e43c7b3/)
   Supported benchmarks:
   ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
   test-mac-arm: Supported benchmark langs: C++, Python, R
   ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
   ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java
   


-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] lidavidm commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
lidavidm commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r818633133



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building C & C++ JNI Libraries on Linux
+---------------------------------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building C & C++ JNI Libraries on MacOS
+---------------------------------------
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Libraries
+----------------------------
+
+Java arrow-c-data maven profile:

Review comment:
       ```"To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:"```

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        $GITHUB_WORKSPACE/java/c
+    $ cmake --build . --target install
+    $ ls -latr $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        $GITHUB_WORKSPACE/cpp
+    $ cmake --build . --target install
+    $ ls -latr  $GITHUB_WORKSPACE/java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Build Java Modules That Consume C / C++ Libs
+++++++++++++++++++++++++++++++++++++++++++++
+
+Build Java C Data Interface
+###########################
+
+Java arrow-c-data maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-c-data clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.385 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.832 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.862 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 12.162 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  6.768 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  6.897 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:43 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  6.510 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 13.280 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.726 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  5.237 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.809 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 47.461 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  6.864 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 20.334 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.542 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 13.826 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 32.442 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.418 s]
+    [INFO] Arrow Java C Data Interface ........................ SUCCESS [  7.907 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+Build Java C++ Interface
+########################
+
+Java arrow-jni maven profile (build ORC / Gandiva / Dataset):
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=$GITHUB_WORKSPACE/java-dist/lib -Parrow-jni clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 7.0.0:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  7.342 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  2.417 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  1.967 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [  4.714 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  3.157 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  3.334 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [ 21.791 s]
+    [INFO] Arrow Compression .................................. SUCCESS [  3.854 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [  8.359 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [  8.847 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  2.459 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  2.357 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.837 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.955 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 17.390 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  6.148 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [  9.635 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 26.949 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  4.211 s]
+    [INFO] Arrow Orc Adapter .................................. SUCCESS [  6.522 s]
+    [INFO] Arrow Gandiva ...................................... SUCCESS [01:20 min]
+    [INFO] Arrow Java Dataset ................................. SUCCESS [ 12.949 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+
+IDE Configuration
+=================
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+
+Let's create our maven configuration: java-dataset
+
+.. image:: img/java_mvn_configuration.png
+
+Let's define our JRE runner:
+
+.. image:: img/java_jre_runner.png
+
+Let's configure additional environment properties:
+
+.. image:: img/java_jre_env_properties.png
+
+Let's run our java-dataset maven configuration:
+
+.. image:: img/java_run_mvn_configuration.png
+
+.. image:: img/java_run_mvn_configuration_result.png
+
+Common Errors
+=============
+
+1.- Errors related to:
+    - Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem)
+    - Could NOT find Lz4 (missing: LZ4_LIB)
+    - Could NOT find zstd (missing: ZSTD_LIB)
+
+    Consider to configure parameters that download software at the build time with:
+
+.. code-block::
+
+    -Dre2_SOURCE=BUNDLED \
+    -DBoost_SOURCE=BUNDLED \
+    -Dutf8proc_SOURCE=BUNDLED \
+    -DSnappy_SOURCE=BUNDLED \
+    -DORC_SOURCE=BUNDLED \
+    -DZLIB_SOURCE=BUNDLED \
+
+2.- Errors related to:
+    - Caused by: java.lang.NoSuchFieldException: reservedMemory.
+
+    We could move from classBits.getDeclaredField("reservedMemory") to classBits.getDeclaredField("RESERVED_MEMORY")

Review comment:
       What was the JIRA?

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building C & C++ JNI Libraries on Linux

Review comment:
       nit, but let's just call it JNI Libraries. "C & C++" is misleading at best here.

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building C & C++ JNI Libraries on Linux
+---------------------------------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building C & C++ JNI Libraries on MacOS
+---------------------------------------
+
+For Build C Data Interface lib:

Review comment:
       "To build only the C Data Interface library:"

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Building C & C++ JNI Libraries on Linux
+---------------------------------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building C & C++ JNI Libraries on MacOS
+---------------------------------------
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+For Build C++ Interface libs:

Review comment:
       "To build other JNI libraries:"




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r818280257



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,308 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-cpp:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java use Maven as a project management.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+You can also build java project for default modules configured.
+Go to parent project and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+Advanced Installation
+---------------------
+
+Build C / C++ Libs
+++++++++++++++++++
+
+Build C / C++ Libs Ubuntu
+#########################
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker & Docker Compose.
+
+.. code-block::
+
+    $ cd arrow
+    $ source dev/conbench_envs/hooks.sh install_archery
+    Successfully installed archery
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Build C / C++ Libs MacOS
+########################
+
+For Build C Data Interface lib:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export GITHUB_WORKSPACE=<absolute path to your arrow project>

Review comment:
       Changed




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r819687772



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,224 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup

Review comment:
       Changed

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,224 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11. Consider: Battle tested by arrow CI checks: JRE 11 (defined: `java.yml`_, result: `java.runs`_)
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+
+Building JNI Libraries on Linux
+-------------------------------
+
+For Build C Data Interface lib & Build C++ Libs (`archery`_ needs docker and docker compose installed locally):
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building JNI Libraries on MacOS
+-------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Modules
+--------------------------
+
+To compile the JNI bindings, use the ``arrow-c-data`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.c.jni.dist.dir=../java-dist/lib -Parrow-c-data clean install
+
+To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ mvn -Darrow.cpp.build.dir=../java-dist/lib -Parrow-jni clean install
+
+IDE Configuration
+=================
+
+IntelliJ IDE
+------------
+
+Go to open java project and select java folder.
+
+This is the initial view for java project loaded with default profiles:
+
+.. image:: img/java_welcome.png
+   :alt: An example image to opening java project

Review comment:
       Updated




-- 
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: github-unsubscribe@arrow.apache.org

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



[GitHub] [arrow] davisusanibar commented on a change in pull request #12534: ARROW-15178: [Java][Docs] Java Tutorial: Developer Docs for Java

Posted by GitBox <gi...@apache.org>.
davisusanibar commented on a change in pull request #12534:
URL: https://github.com/apache/arrow/pull/12534#discussion_r819087454



##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+JNI Libraries

Review comment:
       Updated

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+JNI Libraries
+-------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building C & C++ JNI Libraries on MacOS

Review comment:
       Updated

##########
File path: docs/source/developers/java/building.rst
##########
@@ -0,0 +1,292 @@
+.. 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.
+
+.. highlight:: console
+
+.. _building-arrow-java:
+
+===================
+Building Arrow Java
+===================
+
+.. contents::
+
+System setup
+============
+
+Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.
+
+Building requires:
+
+* JRE 8, 9, 10, 11
+* Maven 3+
+
+Building
+========
+
+All the instructions below assume that you have cloned the Arrow git
+repository:
+
+.. code-block::
+
+    $ git clone https://github.com/apache/arrow.git
+    $ cd arrow
+    $ git submodule update --init --recursive
+
+Basic Installation
+------------------
+
+To build the default modules, go to the project root and execute:
+
+.. code-block::
+
+    $ cd arrow/java
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ java --version
+    $ mvn clean install
+    [INFO] Reactor Summary for Apache Arrow Java Root POM 8.0.0-SNAPSHOT:
+    [INFO]
+    [INFO] Apache Arrow Java Root POM ......................... SUCCESS [  4.922 s]
+    [INFO] Arrow Format ....................................... SUCCESS [  4.395 s]
+    [INFO] Arrow Memory ....................................... SUCCESS [  0.938 s]
+    [INFO] Arrow Memory - Core ................................ SUCCESS [ 11.491 s]
+    [INFO] Arrow Memory - Unsafe .............................. SUCCESS [  5.449 s]
+    [INFO] Arrow Memory - Netty ............................... SUCCESS [  8.754 s]
+    [INFO] Arrow Vectors ...................................... SUCCESS [01:37 min]
+    [INFO] Arrow Compression .................................. SUCCESS [  5.907 s]
+    [INFO] Arrow Tools ........................................ SUCCESS [ 11.015 s]
+    [INFO] Arrow JDBC Adapter ................................. SUCCESS [ 13.751 s]
+    [INFO] Arrow Plasma Client ................................ SUCCESS [  3.934 s]
+    [INFO] Arrow Flight ....................................... SUCCESS [  0.649 s]
+    [INFO] Arrow Flight Core .................................. SUCCESS [ 38.331 s]
+    [INFO] Arrow Flight GRPC .................................. SUCCESS [  5.894 s]
+    [INFO] Arrow Flight SQL ................................... SUCCESS [ 21.862 s]
+    [INFO] Arrow Flight Integration Tests ..................... SUCCESS [  7.638 s]
+    [INFO] Arrow AVRO Adapter ................................. SUCCESS [ 14.447 s]
+    [INFO] Arrow Algorithms ................................... SUCCESS [ 35.105 s]
+    [INFO] Arrow Performance Benchmarks ....................... SUCCESS [  5.323 s]
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------\
+
+JNI Libraries
+-------------
+
+For Build C Data Interface lib & Build C++ Libs. Consider: Next step requires: Docker, Docker Compose, `archery`_.
+
+.. code-block::
+
+    $ cd arrow
+    $ archery docker run java-jni-manylinux-2014
+    $ ls -latr java-dist/
+    |__ libarrow_cdata_jni.so
+    |__ libarrow_dataset_jni.so
+    |__ libarrow_orc_jni.so
+    |__ libgandiva_jni.so
+
+Building C & C++ JNI Libraries on MacOS
+---------------------------------------
+
+To build only the C Data Interface library:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-c
+    $ cd java-native-c
+    $ cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        ../java/c
+    $ cmake --build . --target install
+    $ ls -latr ../java-dist/lib
+    |__ libarrow_cdata_jni.dylib
+
+To build other JNI libraries:
+
+.. code-block::
+
+    $ cd arrow
+    $ brew bundle --file=cpp/Brewfile
+    Homebrew Bundle complete! 25 Brewfile dependencies now installed.
+    $ export JAVA_HOME=<absolute path to your java home>
+    $ mkdir -p java-dist java-native-cpp
+    $ cd java-native-cpp
+    $ cmake \
+        -DARROW_BOOST_USE_SHARED=OFF \
+        -DARROW_BROTLI_USE_SHARED=OFF \
+        -DARROW_BZ2_USE_SHARED=OFF \
+        -DARROW_GFLAGS_USE_SHARED=OFF \
+        -DARROW_GRPC_USE_SHARED=OFF \
+        -DARROW_LZ4_USE_SHARED=OFF \
+        -DARROW_OPENSSL_USE_SHARED=OFF \
+        -DARROW_PROTOBUF_USE_SHARED=OFF \
+        -DARROW_SNAPPY_USE_SHARED=OFF \
+        -DARROW_THRIFT_USE_SHARED=OFF \
+        -DARROW_UTF8PROC_USE_SHARED=OFF \
+        -DARROW_ZSTD_USE_SHARED=OFF \
+        -DARROW_JNI=ON \
+        -DARROW_PARQUET=ON \
+        -DARROW_FILESYSTEM=ON \
+        -DARROW_DATASET=ON \
+        -DARROW_GANDIVA_JAVA=ON \
+        -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
+        -DARROW_GANDIVA=ON \
+        -DARROW_ORC=ON \
+        -DARROW_PLASMA_JAVA_CLIENT=ON \
+        -DARROW_PLASMA=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DCMAKE_INSTALL_PREFIX=../java-dist \
+        -DCMAKE_UNITY_BUILD=ON \
+        -Dre2_SOURCE=BUNDLED \
+        -DBoost_SOURCE=BUNDLED \
+        -Dutf8proc_SOURCE=BUNDLED \
+        -DSnappy_SOURCE=BUNDLED \
+        -DORC_SOURCE=BUNDLED \
+        -DZLIB_SOURCE=BUNDLED \
+        ../cpp
+    $ cmake --build . --target install
+    $ ls -latr  ../java-dist/lib
+    |__ libarrow_dataset_jni.dylib
+    |__ libarrow_orc_jni.dylib
+    |__ libgandiva_jni.dylib
+
+Building Arrow JNI Libraries

Review comment:
       Updated




-- 
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: github-unsubscribe@arrow.apache.org

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