diff --git a/java/flight/flight-core/pom.xml b/java/flight/flight-core/pom.xml
index f1c7e443dde0b..7caa039eb745a 100644
--- a/java/flight/flight-core/pom.xml
+++ b/java/flight/flight-core/pom.xml
@@ -113,6 +113,10 @@
javax.annotation
javax.annotation-api
+
+ org.immutables
+ value
+
com.google.api.grpc
@@ -310,4 +314,32 @@
+
+
+
+ error-prone-jdk11+
+
+ [11,]
+
+ !m2e.version
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ --add-opens=org.apache.arrow.flight.core/org.apache.arrow.flight.perf.impl=protobuf.java --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED
+ false
+
+ ${project.basedir}/../../../testing/data
+
+
+
+
+
+
+
+
diff --git a/java/flight/flight-core/src/main/java/module-info.java b/java/flight/flight-core/src/main/java/module-info.java
new file mode 100644
index 0000000000000..e76f22d616841
--- /dev/null
+++ b/java/flight/flight-core/src/main/java/module-info.java
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+
+module org.apache.arrow.flight.core {
+ exports org.apache.arrow.flight;
+ exports org.apache.arrow.flight.auth;
+ exports org.apache.arrow.flight.auth2;
+ exports org.apache.arrow.flight.client;
+ exports org.apache.arrow.flight.impl;
+ exports org.apache.arrow.flight.sql.impl;
+
+ requires com.fasterxml.jackson.databind;
+ requires com.google.common;
+ requires com.google.errorprone.annotations;
+ requires failureaccess;
+ requires io.grpc;
+ requires io.grpc.internal;
+ requires io.grpc.netty;
+ requires io.grpc.protobuf;
+ requires io.grpc.stub;
+ requires io.netty.common;
+ requires io.netty.handler;
+ requires io.netty.transport;
+ requires org.apache.arrow.format;
+ requires org.apache.arrow.memory.core;
+ requires org.apache.arrow.vector;
+ requires protobuf.java;
+ requires org.slf4j;
+}
diff --git a/java/flight/flight-sql/src/main/java/module-info.java b/java/flight/flight-sql/src/main/java/module-info.java
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/java/flight/flight-sql/src/test/java/org/apache/arrow/flight/TestFlightSql.java b/java/flight/flight-sql/src/test/java/org/apache/arrow/flight/sql/TestFlightSql.java
similarity index 100%
rename from java/flight/flight-sql/src/test/java/org/apache/arrow/flight/TestFlightSql.java
rename to java/flight/flight-sql/src/test/java/org/apache/arrow/flight/sql/TestFlightSql.java
diff --git a/java/flight/flight-sql/src/test/java/org/apache/arrow/flight/TestFlightSqlStreams.java b/java/flight/flight-sql/src/test/java/org/apache/arrow/flight/sql/TestFlightSqlStreams.java
similarity index 100%
rename from java/flight/flight-sql/src/test/java/org/apache/arrow/flight/TestFlightSqlStreams.java
rename to java/flight/flight-sql/src/test/java/org/apache/arrow/flight/sql/TestFlightSqlStreams.java