This is an automated email from the ASF dual-hosted git repository.

mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 5dd4b6e  remove pulsar-client-schema (#3184)
5dd4b6e is described below

commit 5dd4b6e7bff6647926789fb9d71d91f11c299fdb
Author: Boyang Jerry Peng <[email protected]>
AuthorDate: Fri Dec 14 14:33:15 2018 -0800

    remove pulsar-client-schema (#3184)
    
    * remove pulsar-client-schema
    
    * shade avro dependencies in pulsar-client-kafka-shaded
    
    * refactor api to separate module
    
    * adding schema back
    
    * cleaning up
    
    * fix license issue
    
    * fixing licenses
    
    * cleaning up
    
    * adding back lombok
    
    * cleaning up
---
 distribution/server/src/assemble/LICENSE.bin.txt   |   1 +
 examples/flink-consumer-source/pom.xml             |   5 -
 managed-ledger-shaded/pom.xml                      |   4 +-
 pom.xml                                            |   2 +-
 .../broker/admin/AdminApiSchemaAutoUpdateTest.java |   2 -
 .../broker/service/PersistentTopicE2ETest.java     |   1 -
 .../pulsar/broker/service/ReplicatorTest.java      |   1 -
 .../schema/JsonSchemaCompatibilityCheckTest.java   |   3 -
 pulsar-client-admin-shaded/pom.xml                 |   4 +-
 pulsar-client-admin/pom.xml                        |   6 -
 .../org/apache/pulsar/client/admin/Worker.java     |   6 +-
 .../client/admin/internal/FunctionsImpl.java       |   7 -
 .../pulsar/client/admin/internal/TopicsImpl.java   |   5 -
 .../java-examples => pulsar-client-api}/pom.xml    |  35 ++--
 .../org/apache/pulsar/client/api/schema/Field.java |   2 +-
 .../pulsar/client/api/schema/GenericRecord.java    |   0
 .../pulsar-client-kafka-shaded/pom.xml             |  47 ++++-
 .../clients/producer/PulsarKafkaProducer.java      |   1 -
 pulsar-client-schema/pom.xml                       | 197 ---------------------
 pulsar-client-shaded/pom.xml                       |  85 ++++++++-
 .../org/apache/pulsar/admin/cli/CmdFunctions.java  |   2 -
 .../java/org/apache/pulsar/admin/cli/CmdSinks.java |   2 -
 .../org/apache/pulsar/admin/cli/CmdSources.java    |   2 -
 pulsar-client/pom.xml                              |  67 +++++--
 .../java/org/apache/pulsar/client/api/Schema.java  |   0
 .../client/api/SchemaSerializationException.java   |   0
 .../apache/pulsar/client/impl/ProducerImpl.java    |   1 -
 .../client/impl/schema/AutoConsumeSchema.java      |   0
 .../client/impl/schema/AutoProduceBytesSchema.java |   0
 .../pulsar/client/impl/schema/AvroSchema.java      |   0
 .../pulsar/client/impl/schema/ByteBufSchema.java   |   0
 .../client/impl/schema/ByteBufferSchema.java       |   0
 .../pulsar/client/impl/schema/ByteSchema.java      |   0
 .../pulsar/client/impl/schema/BytesSchema.java     |   0
 .../pulsar/client/impl/schema/DoubleSchema.java    |   0
 .../pulsar/client/impl/schema/FloatSchema.java     |   0
 .../pulsar/client/impl/schema/IntSchema.java       |   0
 .../pulsar/client/impl/schema/JSONSchema.java      |   0
 .../pulsar/client/impl/schema/KeyValueSchema.java  |   0
 .../pulsar/client/impl/schema/LongSchema.java      |   0
 .../pulsar/client/impl/schema/ProtobufSchema.java  |   0
 .../pulsar/client/impl/schema/ShortSchema.java     |   0
 .../pulsar/client/impl/schema/StringSchema.java    |   0
 .../impl/schema/generic/GenericAvroRecord.java     |   0
 .../impl/schema/generic/GenericAvroSchema.java     |   0
 .../impl/schema/generic/GenericJsonRecord.java     |   0
 .../impl/schema/generic/GenericJsonSchema.java     |   0
 .../client/impl/schema/generic/GenericSchema.java  |   0
 .../pulsar/client/impl}/schema/AvroSchemaTest.java |  11 +-
 .../{ => impl}/schema/DefaultSchemasTest.java      |   3 +-
 .../pulsar/client/impl}/schema/JSONSchemaTest.java |  16 +-
 .../client/impl}/schema/KeyValueSchemaTest.java    |   8 +-
 .../client/impl}/schema/PrimitiveSchemaTest.java   |   2 +-
 .../client/impl}/schema/ProtobufSchemaTest.java    |   2 +-
 .../client/impl}/schema/SchemaTestUtils.java       |   4 +-
 .../impl/schema/generic/GenericSchemaTest.java     |   4 +-
 .../src/test/proto/Test.proto                      |   0
 pulsar-functions/api-java/pom.xml                  |   6 -
 .../pulsar/functions/instance/ContextImpl.java     |   1 -
 .../pulsar/functions/instance/ContextImplTest.java |   1 -
 pulsar-functions/java-examples/pom.xml             |   5 +
 pulsar-functions/utils/pom.xml                     |   6 +
 .../pulsar/functions/utils/ValidatorUtils.java     |  13 --
 .../io/kafka/connect/KafkaConnectSourceTest.java   |   2 -
 .../proxy/server/ProxyAuthenticationTest.java      |  12 --
 pulsar-sql/presto-distribution/LICENSE             |   2 +-
 site/scripts/javadoc-gen.sh                        |   3 +-
 src/check-binary-license                           |   2 +-
 tests/integration/pom.xml                          |   6 -
 .../pulsar/tests/integration/cli/CLITest.java      |   1 -
 .../integration/functions/PulsarFunctionsTest.java |   1 -
 71 files changed, 246 insertions(+), 353 deletions(-)

diff --git a/distribution/server/src/assemble/LICENSE.bin.txt 
b/distribution/server/src/assemble/LICENSE.bin.txt
index 34722a8..cf0a4e2 100644
--- a/distribution/server/src/assemble/LICENSE.bin.txt
+++ b/distribution/server/src/assemble/LICENSE.bin.txt
@@ -442,6 +442,7 @@ The Apache Software License, Version 2.0
     - net.jodah-typetools-0.5.0.jar
   * Apache Avro
     - org.apache.avro-avro-1.8.2.jar
+    - org.apache.avro-avro-protobuf-1.8.2.jar
   * Apache Curator
     - org.apache.curator-curator-client-4.0.1.jar
     - org.apache.curator-curator-framework-4.0.1.jar
diff --git a/examples/flink-consumer-source/pom.xml 
b/examples/flink-consumer-source/pom.xml
index 3f407d5..3bf7b6c 100644
--- a/examples/flink-consumer-source/pom.xml
+++ b/examples/flink-consumer-source/pom.xml
@@ -39,11 +39,6 @@
     </dependency>
     <dependency>
       <groupId>org.apache.pulsar</groupId>
-      <artifactId>pulsar-client-schema</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.pulsar</groupId>
       <artifactId>pulsar-flink</artifactId>
       <version>${project.version}</version>
       <exclusions>
diff --git a/managed-ledger-shaded/pom.xml b/managed-ledger-shaded/pom.xml
index 43f6329..1535528 100644
--- a/managed-ledger-shaded/pom.xml
+++ b/managed-ledger-shaded/pom.xml
@@ -57,7 +57,6 @@
 
                             <artifactSet>
                                 <includes>
-                                    
<include>org.apache.pulsar:pulsar-functions-proto</include>
                                     
<include>org.apache.pulsar:pulsar-client-original</include>
                                     
<include>org.apache.pulsar:pulsar-client-admin-original</include>
                                     
<include>org.apache.pulsar:managed-ledger-original</include>
@@ -130,6 +129,9 @@
                                 <relocation>
                                     <pattern>com.google</pattern>
                                     
<shadedPattern>org.apache.pulsar.shade.com.google</shadedPattern>
+                                    <excludes>
+                                        
<exclude>com.google.protobuf.*</exclude>
+                                    </excludes>
                                 </relocation>
                                 <relocation>
                                     <pattern>com.fasterxml.jackson</pattern>
diff --git a/pom.xml b/pom.xml
index 7212cdd..93da47b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,9 +81,9 @@ flexible messaging model and an intuitive client 
API.</description>
     <module>pulsar-broker-common</module>
     <module>pulsar-broker</module>
     <module>pulsar-broker-shaded</module>
+    <module>pulsar-client-api</module>
     <module>pulsar-client</module>
     <module>pulsar-client-shaded</module>
-    <module>pulsar-client-schema</module>
     <module>pulsar-client-admin</module>
     <module>pulsar-client-admin-shaded</module>
     <module>pulsar-client-tools</module>
diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiSchemaAutoUpdateTest.java
 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiSchemaAutoUpdateTest.java
index 5060c88..dc7a9ac 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiSchemaAutoUpdateTest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiSchemaAutoUpdateTest.java
@@ -30,10 +30,8 @@ import 
org.apache.pulsar.broker.auth.MockedPulsarServiceBaseTest;
 import org.apache.pulsar.broker.service.Topic;
 import org.apache.pulsar.broker.service.schema.SchemaCompatibilityStrategy;
 import org.apache.pulsar.client.api.Producer;
-import org.apache.pulsar.client.api.PulsarClient;
 import org.apache.pulsar.client.api.PulsarClientException;
 import org.apache.pulsar.client.api.Schema;
-import org.apache.pulsar.common.naming.TopicName;
 import org.apache.pulsar.common.policies.data.ClusterData;
 import org.apache.pulsar.common.policies.data.TenantInfo;
 import 
org.apache.pulsar.common.policies.data.SchemaAutoUpdateCompatibilityStrategy;
diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/PersistentTopicE2ETest.java
 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/PersistentTopicE2ETest.java
index ee9fb74..71ae98e 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/PersistentTopicE2ETest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/PersistentTopicE2ETest.java
@@ -74,7 +74,6 @@ import org.testng.Assert;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.DataProvider;
-import org.testng.annotations.Ignore;
 import org.testng.annotations.Test;
 
 /**
diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ReplicatorTest.java
 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ReplicatorTest.java
index 528ff64..28c6b90 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ReplicatorTest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ReplicatorTest.java
@@ -39,7 +39,6 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.bookkeeper.mledger.AsyncCallbacks.DeleteCursorCallback;
-import org.apache.bookkeeper.mledger.AsyncCallbacks.ReadEntriesCallback;
 import org.apache.bookkeeper.mledger.Entry;
 import org.apache.bookkeeper.mledger.ManagedCursor;
 import org.apache.bookkeeper.mledger.ManagedLedgerException;
diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/schema/JsonSchemaCompatibilityCheckTest.java
 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/schema/JsonSchemaCompatibilityCheckTest.java
index 9a8a539..17b39b7 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/schema/JsonSchemaCompatibilityCheckTest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/schema/JsonSchemaCompatibilityCheckTest.java
@@ -25,15 +25,12 @@ import 
com.fasterxml.jackson.module.jsonSchema.JsonSchemaGenerator;
 
 import java.io.IOException;
 import java.util.Collections;
-import java.util.Date;
 import java.util.Map;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.ToString;
 
-import org.apache.pulsar.client.api.Producer;
-import org.apache.pulsar.client.api.PulsarClient;
 import org.apache.pulsar.client.api.Schema;
 import org.apache.pulsar.client.api.SchemaSerializationException;
 import org.apache.pulsar.client.impl.schema.JSONSchema;
diff --git a/pulsar-client-admin-shaded/pom.xml 
b/pulsar-client-admin-shaded/pom.xml
index 647e8ce..a60239f 100644
--- a/pulsar-client-admin-shaded/pom.xml
+++ b/pulsar-client-admin-shaded/pom.xml
@@ -57,7 +57,6 @@
 
               <artifactSet>
                 <includes>
-                  <include>org.apache.pulsar:pulsar-functions-proto</include>
                   <include>org.apache.pulsar:pulsar-client-original</include>
                   
<include>org.apache.pulsar:pulsar-client-admin-original</include>
                   <include>org.apache.commons:commons-lang3</include>
@@ -118,6 +117,9 @@
                 <relocation>
                   <pattern>com.google</pattern>
                   
<shadedPattern>org.apache.pulsar.shade.com.google</shadedPattern>
+                  <excludes>
+                    <exclude>com.google.protobuf.*</exclude>
+                  </excludes>
                 </relocation>
                 <relocation>
                   <pattern>com.fasterxml.jackson</pattern>
diff --git a/pulsar-client-admin/pom.xml b/pulsar-client-admin/pom.xml
index b87962f..e24f621 100644
--- a/pulsar-client-admin/pom.xml
+++ b/pulsar-client-admin/pom.xml
@@ -41,12 +41,6 @@
     </dependency>
 
     <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>pulsar-functions-proto</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <dependency>
       <groupId>org.glassfish.jersey.core</groupId>
       <artifactId>jersey-client</artifactId>
     </dependency>
diff --git 
a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/Worker.java 
b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/Worker.java
index b21f326..ddeb1df 100644
--- 
a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/Worker.java
+++ 
b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/Worker.java
@@ -29,12 +29,12 @@ import 
org.apache.pulsar.common.policies.data.WorkerFunctionInstanceStats;
  * Admin interface for worker stats management.
  */
 public interface Worker {
-    
-    
+
+
     /**
      * Get all functions stats on a worker
      * @return
-     * @throws PulsarAdminException 
+     * @throws PulsarAdminException
      */
     List<WorkerFunctionInstanceStats> getFunctionsStats() throws 
PulsarAdminException;
 
diff --git 
a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/FunctionsImpl.java
 
b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/FunctionsImpl.java
index 5f80593..1493d1d 100644
--- 
a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/FunctionsImpl.java
+++ 
b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/FunctionsImpl.java
@@ -20,8 +20,6 @@ package org.apache.pulsar.client.admin.internal;
 
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
-import com.google.protobuf.AbstractMessage.Builder;
-import com.google.protobuf.util.JsonFormat;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.pulsar.client.admin.Functions;
@@ -373,9 +371,4 @@ public class FunctionsImpl extends BaseResource implements 
Functions {
             throw getApiException(e);
         }
     }
-
-
-    public static void mergeJson(String json, Builder builder) throws 
IOException {
-        JsonFormat.parser().merge(json, builder);
-    }
 }
diff --git 
a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java
 
b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java
index 8e386dd..216275d 100644
--- 
a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java
+++ 
b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java
@@ -40,9 +40,6 @@ import java.util.concurrent.ExecutionException;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import javax.ws.rs.ClientErrorException;
-import javax.ws.rs.ServerErrorException;
-import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.client.Entity;
 import javax.ws.rs.client.InvocationCallback;
 import javax.ws.rs.client.WebTarget;
@@ -77,8 +74,6 @@ import 
org.apache.pulsar.common.policies.data.PartitionedTopicInternalStats;
 import org.apache.pulsar.common.policies.data.PartitionedTopicStats;
 import org.apache.pulsar.common.policies.data.PersistentTopicInternalStats;
 import org.apache.pulsar.common.policies.data.TopicStats;
-import org.apache.pulsar.common.policies.data.PersistentTopicStats;
-import org.apache.pulsar.common.policies.data.BacklogQuota.BacklogQuotaType;
 import org.apache.pulsar.common.util.Codec;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/pulsar-functions/java-examples/pom.xml b/pulsar-client-api/pom.xml
similarity index 56%
copy from pulsar-functions/java-examples/pom.xml
copy to pulsar-client-api/pom.xml
index 4e1856c..c9bf63c 100644
--- a/pulsar-functions/java-examples/pom.xml
+++ b/pulsar-client-api/pom.xml
@@ -19,28 +19,17 @@
 
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.pulsar</groupId>
-    <artifactId>pulsar-functions</artifactId>
-    <version>2.3.0-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>pulsar-functions-api-examples</artifactId>
-  <name>Pulsar Functions :: API Examples</name>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>pulsar-functions-api</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-  </dependencies>
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.pulsar</groupId>
+        <artifactId>pulsar</artifactId>
+        <version>2.3.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+
+    <artifactId>pulsar-client-api</artifactId>
+    <name>Pulsar Client :: API</name>
 
 </project>
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/api/schema/Field.java
 
b/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/schema/Field.java
similarity index 99%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/api/schema/Field.java
rename to 
pulsar-client-api/src/main/java/org/apache/pulsar/client/api/schema/Field.java
index 653b5d6..39f1fa3 100644
--- 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/api/schema/Field.java
+++ 
b/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/schema/Field.java
@@ -39,5 +39,5 @@ public class Field {
      * The index of the field within the record.
      */
     private final int index;
-
+    
 }
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/api/schema/GenericRecord.java
 
b/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/schema/GenericRecord.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/api/schema/GenericRecord.java
rename to 
pulsar-client-api/src/main/java/org/apache/pulsar/client/api/schema/GenericRecord.java
diff --git a/pulsar-client-kafka-compat/pulsar-client-kafka-shaded/pom.xml 
b/pulsar-client-kafka-compat/pulsar-client-kafka-shaded/pom.xml
index a6b54f7..b171c65 100644
--- a/pulsar-client-kafka-compat/pulsar-client-kafka-shaded/pom.xml
+++ b/pulsar-client-kafka-compat/pulsar-client-kafka-shaded/pom.xml
@@ -68,7 +68,6 @@
                   <include>org.apache.kafka:kafka-clients</include>
                   
<include>org.apache.pulsar:pulsar-client-kafka-original</include>
                   <include>org.apache.pulsar:pulsar-client-original</include>
-                  <include>org.apache.pulsar:pulsar-client-schema</include>
                   <include>org.apache.commons:commons-lang3</include>
                   <include>commons-codec:commons-codec</include>
                   <include>commons-collections:commons-collections</include>
@@ -97,6 +96,15 @@
                   <include>commons-*:*</include>
                   <include>org.yaml:snakeyaml</include>
                   <include>org.objenesis:*</include>
+
+                  <include>org.apache.avro:*</include>
+                  <!-- Avro transitive dependencies-->
+                  <include>org.codehaus.jackson:jackson-core-asl</include>
+                  <include>org.codehaus.jackson:jackson-mapper-asl</include>
+                  <include>com.thoughtworks.paranamer:paranamer</include>
+                  <include>org.xerial.snappy:snappy-java</include>
+                  <include>org.apache.commons:commons-compress</include>
+                  <include>org.tukaani:xz</include>
                 </includes>
               </artifactSet>
                <filters>
@@ -183,6 +191,43 @@
                   <pattern>org.yaml</pattern>
                   
<shadedPattern>org.apache.pulsar.shade.org.yaml</shadedPattern>
                 </relocation>
+                <relocation>
+                  <pattern>org.apache.avro</pattern>
+                  
<shadedPattern>org.apache.pulsar.shade.org.apache.avro</shadedPattern>
+                  <excludes>
+                    <exclude>org.apache.avro.reflect.AvroAlias</exclude>
+                    <exclude>org.apache.avro.reflect.AvroDefault</exclude>
+                    <exclude>org.apache.avro.reflect.AvroEncode</exclude>
+                    <exclude>org.apache.avro.reflect.AvroIgnore</exclude>
+                    <exclude>org.apache.avro.reflect.AvroMeta</exclude>
+                    <exclude>org.apache.avro.reflect.AvroName</exclude>
+                    <exclude>org.apache.avro.reflect.AvroSchema</exclude>
+                    <exclude>org.apache.avro.reflect.Nullable</exclude>
+                    <exclude>org.apache.avro.reflect.Stringable</exclude>
+                    <exclude>org.apache.avro.reflect.Union</exclude>
+                  </excludes>
+                </relocation>
+                <!--Avro transitive dependencies-->
+                <relocation>
+                  <pattern>org.codehaus.jackson</pattern>
+                  
<shadedPattern>org.apache.pulsar.shade.org.codehaus.jackson</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>com.thoughtworks.paranamer</pattern>
+                  
<shadedPattern>org.apache.pulsar.shade.com.thoughtworks.paranamer</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.xerial.snappy</pattern>
+                  
<shadedPattern>org.apache.pulsar.shade.org.xerial.snappy</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.commons</pattern>
+                  
<shadedPattern>org.apache.pulsar.shade.org.apache.commons</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.tukaani</pattern>
+                  
<shadedPattern>org.apache.pulsar.shade.org.tukaani</shadedPattern>
+                </relocation>
               </relocations>
               <filters>
                 <filter>
diff --git 
a/pulsar-client-kafka-compat/pulsar-client-kafka/src/main/java/org/apache/kafka/clients/producer/PulsarKafkaProducer.java
 
b/pulsar-client-kafka-compat/pulsar-client-kafka/src/main/java/org/apache/kafka/clients/producer/PulsarKafkaProducer.java
index 726ca78..0552591 100644
--- 
a/pulsar-client-kafka-compat/pulsar-client-kafka/src/main/java/org/apache/kafka/clients/producer/PulsarKafkaProducer.java
+++ 
b/pulsar-client-kafka-compat/pulsar-client-kafka/src/main/java/org/apache/kafka/clients/producer/PulsarKafkaProducer.java
@@ -43,7 +43,6 @@ import org.apache.pulsar.client.api.MessageId;
 import org.apache.pulsar.client.api.ProducerBuilder;
 import org.apache.pulsar.client.api.PulsarClient;
 import org.apache.pulsar.client.api.PulsarClientException;
-import org.apache.pulsar.client.api.SchemaSerializationException;
 import org.apache.pulsar.client.api.TypedMessageBuilder;
 import org.apache.pulsar.client.impl.MessageIdImpl;
 import org.apache.pulsar.client.impl.TypedMessageBuilderImpl;
diff --git a/pulsar-client-schema/pom.xml b/pulsar-client-schema/pom.xml
deleted file mode 100644
index 5e90779..0000000
--- a/pulsar-client-schema/pom.xml
+++ /dev/null
@@ -1,197 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.pulsar</groupId>
-        <artifactId>pulsar</artifactId>
-        <version>2.3.0-SNAPSHOT</version>
-        <relativePath>..</relativePath>
-    </parent>
-
-    <artifactId>pulsar-client-schema</artifactId>
-    <name>Pulsar Client Schema</name>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>pulsar-common</artifactId>
-            <version>${project.parent.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.avro</groupId>
-            <artifactId>avro</artifactId>
-            <version>${avro.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.avro</groupId>
-            <artifactId>avro-protobuf</artifactId>
-            <version>${avro.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.google.protobuf</groupId>
-            <artifactId>protobuf-java</artifactId>
-            <version>${protobuf3.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.module</groupId>
-            <artifactId>jackson-module-jsonSchema</artifactId>
-        </dependency>
-
-        <!-- Testing dependencies -->
-        <dependency>
-            <groupId>org.apache.pulsar</groupId>
-            <artifactId>pulsar-functions-proto</artifactId>
-            <version>${project.parent.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <resources>
-            <resource>
-                <directory>src/main/resources</directory>
-                <filtering>true</filtering>
-            </resource>
-        </resources>
-        <!-- Generate protobuf for testing purposes -->
-        <plugins>
-            <plugin>
-                <groupId>org.xolstice.maven.plugins</groupId>
-                <artifactId>protobuf-maven-plugin</artifactId>
-                <version>${protobuf-maven-plugin.version}</version>
-                <configuration>
-                    
<protocArtifact>com.google.protobuf:protoc:${protoc3.version}:exe:${os.detected.classifier}</protocArtifact>
-                    <checkStaleness>true</checkStaleness>
-                    <pluginId>grpc-java</pluginId>
-                    
<pluginArtifact>io.grpc:protoc-gen-grpc-java:${protoc-gen-grpc-java.version}:exe:${os.detected.classifier}</pluginArtifact>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>test-compile</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-shade-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>shade</goal>
-                        </goals>
-                        <configuration>
-                            
<createDependencyReducedPom>true</createDependencyReducedPom>
-                            
<promoteTransitiveDependencies>true</promoteTransitiveDependencies>
-
-                            <artifactSet>
-                                <includes>
-                                    <!--Json schema transitive dependencies-->
-                                    
<include>com.fasterxml.jackson.*:*</include>
-
-                                    <include>org.apache.avro:*</include>
-                                    <!-- Avro transitive dependencies-->
-                                    
<include>org.codehaus.jackson:jackson-core-asl</include>
-                                    
<include>org.codehaus.jackson:jackson-mapper-asl</include>
-                                    
<include>com.thoughtworks.paranamer:paranamer</include>
-                                    
<include>org.xerial.snappy:snappy-java</include>
-                                    
<include>org.apache.commons:commons-compress</include>
-                                    <include>org.tukaani:xz</include>
-                                    <include>org.objenesis:*</include>
-                                </includes>
-                            </artifactSet>
-                            <relocations>
-                                <!--Json schema transitive dependencies-->
-                                <relocation>
-                                    <pattern>com.fasterxml.jackson</pattern>
-                                    
<shadedPattern>org.apache.pulsar.shade.com.fasterxml.jackson</shadedPattern>
-                                </relocation>
-
-                                <relocation>
-                                    <pattern>org.apache.avro</pattern>
-                                    
<shadedPattern>org.apache.pulsar.shade.org.apache.avro</shadedPattern>
-                                    <excludes>
-                                        
<exclude>org.apache.avro.reflect.AvroAlias</exclude>
-                                        
<exclude>org.apache.avro.reflect.AvroDefault</exclude>
-                                        
<exclude>org.apache.avro.reflect.AvroEncode</exclude>
-                                        
<exclude>org.apache.avro.reflect.AvroIgnore</exclude>
-                                        
<exclude>org.apache.avro.reflect.AvroMeta</exclude>
-                                        
<exclude>org.apache.avro.reflect.AvroName</exclude>
-                                        
<exclude>org.apache.avro.reflect.AvroSchema</exclude>
-                                        
<exclude>org.apache.avro.reflect.Nullable</exclude>
-                                        
<exclude>org.apache.avro.reflect.Stringable</exclude>
-                                        
<exclude>org.apache.avro.reflect.Union</exclude>
-                                    </excludes>
-                                </relocation>
-                                <!--Avro transitive dependencies-->
-                                <relocation>
-                                    <pattern>org.codehaus.jackson</pattern>
-                                    
<shadedPattern>org.apache.pulsar.shade.org.codehaus.jackson</shadedPattern>
-                                </relocation>
-                                <relocation>
-                                    
<pattern>com.thoughtworks.paranamer</pattern>
-                                    
<shadedPattern>org.apache.pulsar.shade.com.thoughtworks.paranamer</shadedPattern>
-                                </relocation>
-                                <relocation>
-                                    <pattern>org.xerial.snappy</pattern>
-                                    
<shadedPattern>org.apache.pulsar.shade.org.xerial.snappy</shadedPattern>
-                                </relocation>
-                                <relocation>
-                                    <pattern>org.apache.commons</pattern>
-                                    
<shadedPattern>org.apache.pulsar.shade.org.apache.commons</shadedPattern>
-                                </relocation>
-                                <relocation>
-                                    <pattern>org.tukaani</pattern>
-                                    
<shadedPattern>org.apache.pulsar.shade.org.tukaani</shadedPattern>
-                                </relocation>
-                                <relocation>
-                                    <pattern>org.objenesis</pattern>
-                                    
<shadedPattern>org.apache.pulsar.shade.org.objenesis</shadedPattern>
-                                </relocation>
-                            </relocations>
-                            <transformers>
-                                <transformer 
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"
 />
-                                <transformer 
implementation="org.apache.maven.plugins.shade.resource.PluginXmlResourceTransformer"
 />
-                            </transformers>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git a/pulsar-client-shaded/pom.xml b/pulsar-client-shaded/pom.xml
index 3b7b17b..c461849 100644
--- a/pulsar-client-shaded/pom.xml
+++ b/pulsar-client-shaded/pom.xml
@@ -42,6 +42,38 @@
 
   <build>
     <plugins>
+
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <version>3.1.1</version>
+        <executions>
+          <execution>
+            <id>unpack</id>
+            <phase>generate-sources</phase>
+            <goals>
+              <goal>unpack</goal>
+            </goals>
+            <configuration>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>org.apache.pulsar</groupId>
+                  <artifactId>pulsar-client-original</artifactId>
+                  <version>${project.version}</version>
+                  <type>jar</type>
+                  <overWrite>true</overWrite>
+                  <includes>**/ProtobufSchema.class</includes>
+                  
<outputDirectory>${project.build.directory}/classes</outputDirectory>
+                </artifactItem>
+              </artifactItems>
+
+
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
       <plugin>
         <!-- Shade all the dependencies to avoid conflicts -->
         <groupId>org.apache.maven.plugins</groupId>
@@ -58,9 +90,6 @@
               <minimizeJar>false</minimizeJar>
 
               <artifactSet>
-                <excludes>
-                  <exclude>org.apache.pulsar:pulsar-client-schema</exclude>
-                </excludes>
                 <includes>
                   <include>org.apache.pulsar:pulsar-client-original</include>
                   <include>org.apache.commons:commons-lang3</include>
@@ -72,7 +101,6 @@
                   <include>org.reactivestreams:reactive-streams</include>
                   <include>com.typesafe.netty:netty-reactive-streams</include>
                   <include>org.javassist:javassist</include>
-                  <include>com.google.protobuf:protobuf-java</include>
                   <include>com.google.guava:guava</include>
                   <include>com.google.code.gson:gson</include>
                   <include>com.fasterxml.jackson.core</include>
@@ -95,6 +123,15 @@
                   <include>org.objenesis:*</include>
                   <include>org.yaml:snakeyaml</include>
 
+                  <include>org.apache.avro:*</include>
+                  <!-- Avro transitive dependencies-->
+                  <include>org.codehaus.jackson:jackson-core-asl</include>
+                  <include>org.codehaus.jackson:jackson-mapper-asl</include>
+                  <include>com.thoughtworks.paranamer:paranamer</include>
+                  <include>org.xerial.snappy:snappy-java</include>
+                  <include>org.apache.commons:commons-compress</include>
+                  <include>org.tukaani:xz</include>
+
                 </includes>
               </artifactSet>
               <filters>
@@ -123,6 +160,9 @@
                 <relocation>
                   <pattern>com.google</pattern>
                   
<shadedPattern>org.apache.pulsar.shade.com.google</shadedPattern>
+                  <excludes>
+                    <exclude>com.google.protobuf.*</exclude>
+                  </excludes>
                 </relocation>
                 <relocation>
                   <pattern>com.fasterxml.jackson</pattern>
@@ -172,6 +212,43 @@
                   <pattern>org.yaml</pattern>
                   
<shadedPattern>org.apache.pulsar.shade.org.yaml</shadedPattern>
                 </relocation>
+                <relocation>
+                  <pattern>org.apache.avro</pattern>
+                  
<shadedPattern>org.apache.pulsar.shade.org.apache.avro</shadedPattern>
+                  <excludes>
+                    <exclude>org.apache.avro.reflect.AvroAlias</exclude>
+                    <exclude>org.apache.avro.reflect.AvroDefault</exclude>
+                    <exclude>org.apache.avro.reflect.AvroEncode</exclude>
+                    <exclude>org.apache.avro.reflect.AvroIgnore</exclude>
+                    <exclude>org.apache.avro.reflect.AvroMeta</exclude>
+                    <exclude>org.apache.avro.reflect.AvroName</exclude>
+                    <exclude>org.apache.avro.reflect.AvroSchema</exclude>
+                    <exclude>org.apache.avro.reflect.Nullable</exclude>
+                    <exclude>org.apache.avro.reflect.Stringable</exclude>
+                    <exclude>org.apache.avro.reflect.Union</exclude>
+                  </excludes>
+                </relocation>
+                <!--Avro transitive dependencies-->
+                <relocation>
+                  <pattern>org.codehaus.jackson</pattern>
+                  
<shadedPattern>org.apache.pulsar.shade.org.codehaus.jackson</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>com.thoughtworks.paranamer</pattern>
+                  
<shadedPattern>org.apache.pulsar.shade.com.thoughtworks.paranamer</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.xerial.snappy</pattern>
+                  
<shadedPattern>org.apache.pulsar.shade.org.xerial.snappy</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.commons</pattern>
+                  
<shadedPattern>org.apache.pulsar.shade.org.apache.commons</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.tukaani</pattern>
+                  
<shadedPattern>org.apache.pulsar.shade.org.tukaani</shadedPattern>
+                </relocation>
               </relocations>
               <transformers>
                 <transformer 
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"
 />
diff --git 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java
 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java
index 048a528..00ce1af 100644
--- 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java
+++ 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java
@@ -30,9 +30,7 @@ import com.beust.jcommander.converters.StringConverter;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
-import com.google.gson.JsonParser;
 import com.google.gson.reflect.TypeToken;
-import com.google.protobuf.util.JsonFormat;
 
 import java.io.File;
 import java.lang.reflect.Field;
diff --git 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSinks.java 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSinks.java
index 5d1b9c0..dd533ac 100644
--- 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSinks.java
+++ 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSinks.java
@@ -29,7 +29,6 @@ import com.beust.jcommander.Parameters;
 import com.beust.jcommander.converters.StringConverter;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
-import com.google.gson.JsonParser;
 import com.google.gson.reflect.TypeToken;
 
 import java.io.File;
@@ -39,7 +38,6 @@ import java.lang.reflect.Type;
 import java.util.*;
 import java.util.stream.Collectors;
 
-import com.google.protobuf.util.JsonFormat;
 import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
 
diff --git 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java
index 7acd85b..c61b69a 100644
--- 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java
+++ 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java
@@ -29,7 +29,6 @@ import com.beust.jcommander.Parameters;
 import com.beust.jcommander.converters.StringConverter;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
-import com.google.gson.JsonParser;
 import com.google.gson.reflect.TypeToken;
 
 import java.io.File;
@@ -42,7 +41,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import com.google.protobuf.util.JsonFormat;
 import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
 
diff --git a/pulsar-client/pom.xml b/pulsar-client/pom.xml
index 01aec7c..b196f20 100644
--- a/pulsar-client/pom.xml
+++ b/pulsar-client/pom.xml
@@ -34,21 +34,14 @@
 
   <dependencies>
     <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>pulsar-common</artifactId>
+      <groupId>org.apache.pulsar</groupId>
+      <artifactId>pulsar-client-api</artifactId>
       <version>${project.parent.version}</version>
     </dependency>
-
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>pulsar-client-schema</artifactId>
+      <artifactId>pulsar-common</artifactId>
       <version>${project.parent.version}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.apache.avro</groupId>
-          <artifactId>*</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
 
     <dependency>
@@ -96,6 +89,38 @@
          </exclusion>
       </exclusions>
     </dependency>
+
+    <!--Schema dependencies-->
+
+    <dependency>
+      <groupId>org.apache.avro</groupId>
+      <artifactId>avro</artifactId>
+      <version>${avro.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.avro</groupId>
+      <artifactId>avro-protobuf</artifactId>
+      <version>${avro.version}</version>
+      <exclusions>
+        <exclusion>
+          <groupId>com.google.protobuf</groupId>
+          <artifactId>protobuf-java</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>com.google.protobuf</groupId>
+      <artifactId>protobuf-java</artifactId>
+      <version>${protobuf3.version}</version>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>com.fasterxml.jackson.module</groupId>
+      <artifactId>jackson-module-jsonSchema</artifactId>
+    </dependency>
     
     <!-- httpclient-hostname-verification depends on below dependencies  --> 
     <dependency>
@@ -125,5 +150,27 @@
         <filtering>true</filtering>
       </resource>
     </resources>
+    <!-- Generate protobuf for testing purposes -->
+    <plugins>
+      <plugin>
+        <groupId>org.xolstice.maven.plugins</groupId>
+        <artifactId>protobuf-maven-plugin</artifactId>
+        <version>${protobuf-maven-plugin.version}</version>
+        <configuration>
+          
<protocArtifact>com.google.protobuf:protoc:${protoc3.version}:exe:${os.detected.classifier}</protocArtifact>
+          <checkStaleness>true</checkStaleness>
+          <pluginId>grpc-java</pluginId>
+          
<pluginArtifact>io.grpc:protoc-gen-grpc-java:${protoc-gen-grpc-java.version}:exe:${os.detected.classifier}
+          </pluginArtifact>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>test-compile</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
   </build>
 </project>
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/api/Schema.java 
b/pulsar-client/src/main/java/org/apache/pulsar/client/api/Schema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/api/Schema.java
rename to pulsar-client/src/main/java/org/apache/pulsar/client/api/Schema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/api/SchemaSerializationException.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/api/SchemaSerializationException.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/api/SchemaSerializationException.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/api/SchemaSerializationException.java
diff --git 
a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ProducerImpl.java 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ProducerImpl.java
index 621c86c..88f9b1c 100644
--- 
a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ProducerImpl.java
+++ 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ProducerImpl.java
@@ -70,7 +70,6 @@ import 
org.apache.pulsar.common.compression.CompressionCodecProvider;
 import org.apache.pulsar.common.schema.SchemaInfo;
 import org.apache.pulsar.common.schema.SchemaType;
 import org.apache.pulsar.common.util.DateFormatter;
-import org.apache.pulsar.common.util.FutureUtil;
 import org.apache.pulsar.shaded.com.google.protobuf.v241.ByteString;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/AutoConsumeSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/AutoConsumeSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/AutoConsumeSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/AutoConsumeSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/AutoProduceBytesSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/AutoProduceBytesSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/AutoProduceBytesSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/AutoProduceBytesSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/AvroSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/AvroSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/AvroSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/AvroSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/ByteBufSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/ByteBufSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/ByteBufSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/ByteBufSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/ByteBufferSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/ByteBufferSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/ByteBufferSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/ByteBufferSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/ByteSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/ByteSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/ByteSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/ByteSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/BytesSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/BytesSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/BytesSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/BytesSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/DoubleSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/DoubleSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/DoubleSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/DoubleSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/FloatSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/FloatSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/FloatSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/FloatSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/IntSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/IntSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/IntSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/IntSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/JSONSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/JSONSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/JSONSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/JSONSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/KeyValueSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/KeyValueSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/KeyValueSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/KeyValueSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/LongSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/LongSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/LongSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/LongSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/ProtobufSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/ProtobufSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/ProtobufSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/ProtobufSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/ShortSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/ShortSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/ShortSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/ShortSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/StringSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/StringSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/StringSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/StringSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericAvroRecord.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericAvroRecord.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericAvroRecord.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericAvroRecord.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericAvroSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericAvroSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericAvroSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericAvroSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericJsonRecord.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericJsonRecord.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericJsonRecord.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericJsonRecord.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericJsonSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericJsonSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericJsonSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericJsonSchema.java
diff --git 
a/pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericSchema.java
 
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericSchema.java
similarity index 100%
rename from 
pulsar-client-schema/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericSchema.java
rename to 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericSchema.java
diff --git 
a/pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/AvroSchemaTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/AvroSchemaTest.java
similarity index 87%
rename from 
pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/AvroSchemaTest.java
rename to 
pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/AvroSchemaTest.java
index 58d1593..e00e1a6 100644
--- 
a/pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/AvroSchemaTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/AvroSchemaTest.java
@@ -16,17 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.client.schema;
+package org.apache.pulsar.client.impl.schema;
 
-import static org.apache.pulsar.client.schema.SchemaTestUtils.FOO_FIELDS;
-import static org.apache.pulsar.client.schema.SchemaTestUtils.SCHEMA_JSON;
+import static org.apache.pulsar.client.impl.schema.SchemaTestUtils.FOO_FIELDS;
+import static org.apache.pulsar.client.impl.schema.SchemaTestUtils.SCHEMA_JSON;
 import static org.testng.Assert.assertEquals;
 
 import lombok.extern.slf4j.Slf4j;
 import org.apache.avro.Schema;
-import org.apache.pulsar.client.impl.schema.AvroSchema;
-import org.apache.pulsar.client.schema.SchemaTestUtils.Bar;
-import org.apache.pulsar.client.schema.SchemaTestUtils.Foo;
+import org.apache.pulsar.client.impl.schema.SchemaTestUtils.Bar;
+import org.apache.pulsar.client.impl.schema.SchemaTestUtils.Foo;
 import org.apache.pulsar.common.schema.SchemaType;
 import org.testng.Assert;
 import org.testng.annotations.Test;
diff --git 
a/pulsar-client/src/test/java/org/apache/pulsar/client/schema/DefaultSchemasTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/DefaultSchemasTest.java
similarity index 97%
rename from 
pulsar-client/src/test/java/org/apache/pulsar/client/schema/DefaultSchemasTest.java
rename to 
pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/DefaultSchemasTest.java
index 8ab0349..70416f3 100644
--- 
a/pulsar-client/src/test/java/org/apache/pulsar/client/schema/DefaultSchemasTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/DefaultSchemasTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.client.schema;
+package org.apache.pulsar.client.impl.schema;
 
 import org.apache.pulsar.client.api.ConsumerBuilder;
 import org.apache.pulsar.client.api.Message;
@@ -25,7 +25,6 @@ import org.apache.pulsar.client.api.ProducerBuilder;
 import org.apache.pulsar.client.api.PulsarClient;
 import org.apache.pulsar.client.api.PulsarClientException;
 import org.apache.pulsar.client.api.ReaderBuilder;
-import org.apache.pulsar.client.impl.schema.StringSchema;
 import org.testng.Assert;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
diff --git 
a/pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/JSONSchemaTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/JSONSchemaTest.java
similarity index 91%
rename from 
pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/JSONSchemaTest.java
rename to 
pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/JSONSchemaTest.java
index 93f3478..1177983 100644
--- 
a/pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/JSONSchemaTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/JSONSchemaTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.client.schema;
+package org.apache.pulsar.client.impl.schema;
 
 import java.util.Collections;
 import java.util.List;
@@ -24,17 +24,17 @@ import java.util.List;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.avro.Schema;
 import org.apache.pulsar.client.impl.schema.JSONSchema;
-import org.apache.pulsar.client.schema.SchemaTestUtils.Bar;
-import org.apache.pulsar.client.schema.SchemaTestUtils.DerivedFoo;
-import org.apache.pulsar.client.schema.SchemaTestUtils.Foo;
-import org.apache.pulsar.client.schema.SchemaTestUtils.NestedBar;
-import org.apache.pulsar.client.schema.SchemaTestUtils.NestedBarList;
+import org.apache.pulsar.client.impl.schema.SchemaTestUtils.Bar;
+import org.apache.pulsar.client.impl.schema.SchemaTestUtils.DerivedFoo;
+import org.apache.pulsar.client.impl.schema.SchemaTestUtils.Foo;
+import org.apache.pulsar.client.impl.schema.SchemaTestUtils.NestedBar;
+import org.apache.pulsar.client.impl.schema.SchemaTestUtils.NestedBarList;
 import org.apache.pulsar.common.schema.SchemaType;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import static org.apache.pulsar.client.schema.SchemaTestUtils.FOO_FIELDS;
-import static org.apache.pulsar.client.schema.SchemaTestUtils.SCHEMA_JSON;
+import static org.apache.pulsar.client.impl.schema.SchemaTestUtils.FOO_FIELDS;
+import static org.apache.pulsar.client.impl.schema.SchemaTestUtils.SCHEMA_JSON;
 
 @Slf4j
 public class JSONSchemaTest {
diff --git 
a/pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/KeyValueSchemaTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/KeyValueSchemaTest.java
similarity index 96%
rename from 
pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/KeyValueSchemaTest.java
rename to 
pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/KeyValueSchemaTest.java
index 23d5022..d355fc7 100644
--- 
a/pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/KeyValueSchemaTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/KeyValueSchemaTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.client.schema;
+package org.apache.pulsar.client.impl.schema;
 
 import static org.testng.Assert.assertEquals;
 
@@ -25,9 +25,9 @@ import org.apache.pulsar.client.api.Schema;
 import org.apache.pulsar.client.impl.schema.AvroSchema;
 import org.apache.pulsar.client.impl.schema.JSONSchema;
 import org.apache.pulsar.client.impl.schema.KeyValueSchema;
-import org.apache.pulsar.client.schema.SchemaTestUtils.Bar;
-import org.apache.pulsar.client.schema.SchemaTestUtils.Color;
-import org.apache.pulsar.client.schema.SchemaTestUtils.Foo;
+import org.apache.pulsar.client.impl.schema.SchemaTestUtils.Bar;
+import org.apache.pulsar.client.impl.schema.SchemaTestUtils.Color;
+import org.apache.pulsar.client.impl.schema.SchemaTestUtils.Foo;
 import org.apache.pulsar.common.schema.KeyValue;
 import org.apache.pulsar.common.schema.SchemaType;
 import org.testng.Assert;
diff --git 
a/pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/PrimitiveSchemaTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/PrimitiveSchemaTest.java
similarity index 99%
rename from 
pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/PrimitiveSchemaTest.java
rename to 
pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/PrimitiveSchemaTest.java
index aac2d8c..0932bc3 100644
--- 
a/pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/PrimitiveSchemaTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/PrimitiveSchemaTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.client.schema;
+package org.apache.pulsar.client.impl.schema;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.testng.Assert.assertEquals;
diff --git 
a/pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/ProtobufSchemaTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/ProtobufSchemaTest.java
similarity index 99%
rename from 
pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/ProtobufSchemaTest.java
rename to 
pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/ProtobufSchemaTest.java
index 69c66dc..5a9716e 100644
--- 
a/pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/ProtobufSchemaTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/ProtobufSchemaTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.client.schema;
+package org.apache.pulsar.client.impl.schema;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
diff --git 
a/pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/SchemaTestUtils.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/SchemaTestUtils.java
similarity index 97%
rename from 
pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/SchemaTestUtils.java
rename to 
pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/SchemaTestUtils.java
index b31b007..0081f0e 100644
--- 
a/pulsar-client-schema/src/test/java/org/apache/pulsar/client/schema/SchemaTestUtils.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/SchemaTestUtils.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pulsar.client.schema;
+package org.apache.pulsar.client.impl.schema;
 
 import java.util.List;
 
@@ -88,7 +88,7 @@ public class SchemaTestUtils {
     }
 
     public static final String SCHEMA_JSON
-            = 
"{\"type\":\"record\",\"name\":\"Foo\",\"namespace\":\"org.apache.pulsar.client.schema"
 +
+            = 
"{\"type\":\"record\",\"name\":\"Foo\",\"namespace\":\"org.apache.pulsar.client.impl.schema"
 +
             
".SchemaTestUtils$\",\"fields\":[{\"name\":\"field1\",\"type\":[\"null\",\"string\"],\"default\":null},"
 +
             
"{\"name\":\"field2\",\"type\":[\"null\",\"string\"],\"default\":null},{\"name\":\"field3\","
 +
             
"\"type\":\"int\"},{\"name\":\"field4\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"Bar\","
 +
diff --git 
a/pulsar-client-schema/src/test/java/org/apache/pulsar/client/impl/schema/generic/GenericSchemaTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/generic/GenericSchemaTest.java
similarity index 96%
rename from 
pulsar-client-schema/src/test/java/org/apache/pulsar/client/impl/schema/generic/GenericSchemaTest.java
rename to 
pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/generic/GenericSchemaTest.java
index f00d05d..4e6e261 100644
--- 
a/pulsar-client-schema/src/test/java/org/apache/pulsar/client/impl/schema/generic/GenericSchemaTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/generic/GenericSchemaTest.java
@@ -26,8 +26,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.pulsar.client.api.Schema;
 import org.apache.pulsar.client.api.schema.GenericRecord;
 import org.apache.pulsar.client.impl.schema.AutoConsumeSchema;
-import org.apache.pulsar.client.schema.SchemaTestUtils.Bar;
-import org.apache.pulsar.client.schema.SchemaTestUtils.Foo;
+import org.apache.pulsar.client.impl.schema.SchemaTestUtils.Bar;
+import org.apache.pulsar.client.impl.schema.SchemaTestUtils.Foo;
 import org.testng.annotations.Test;
 
 /**
diff --git a/pulsar-client-schema/src/test/proto/Test.proto 
b/pulsar-client/src/test/proto/Test.proto
similarity index 100%
rename from pulsar-client-schema/src/test/proto/Test.proto
rename to pulsar-client/src/test/proto/Test.proto
diff --git a/pulsar-functions/api-java/pom.xml 
b/pulsar-functions/api-java/pom.xml
index d221072..7b590e0 100644
--- a/pulsar-functions/api-java/pom.xml
+++ b/pulsar-functions/api-java/pom.xml
@@ -38,12 +38,6 @@
     </dependency>
 
     <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>pulsar-client-schema</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <dependency>
       <groupId>net.jodah</groupId>
       <artifactId>typetools</artifactId>
       <scope>test</scope>
diff --git 
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/ContextImpl.java
 
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/ContextImpl.java
index 0604879..69fd6c8 100644
--- 
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/ContextImpl.java
+++ 
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/ContextImpl.java
@@ -35,7 +35,6 @@ import org.apache.pulsar.functions.api.Context;
 import org.apache.pulsar.functions.api.Record;
 import org.apache.pulsar.functions.instance.state.StateContextImpl;
 import org.apache.pulsar.functions.proto.Function.SinkSpec;
-import org.apache.pulsar.functions.proto.InstanceCommunication.MetricsData;
 import org.apache.pulsar.functions.secretsprovider.SecretsProvider;
 import org.apache.pulsar.functions.source.TopicSchema;
 import org.apache.pulsar.io.core.SinkContext;
diff --git 
a/pulsar-functions/instance/src/test/java/org/apache/pulsar/functions/instance/ContextImplTest.java
 
b/pulsar-functions/instance/src/test/java/org/apache/pulsar/functions/instance/ContextImplTest.java
index 0ac3502..77427f7 100644
--- 
a/pulsar-functions/instance/src/test/java/org/apache/pulsar/functions/instance/ContextImplTest.java
+++ 
b/pulsar-functions/instance/src/test/java/org/apache/pulsar/functions/instance/ContextImplTest.java
@@ -32,7 +32,6 @@ import java.util.concurrent.CompletableFuture;
 
 import io.prometheus.client.CollectorRegistry;
 import org.apache.pulsar.client.api.Producer;
-import org.apache.pulsar.client.api.PulsarClient;
 import org.apache.pulsar.client.api.Schema;
 import org.apache.pulsar.client.impl.ProducerBuilderImpl;
 import org.apache.pulsar.client.impl.PulsarClientImpl;
diff --git a/pulsar-functions/java-examples/pom.xml 
b/pulsar-functions/java-examples/pom.xml
index 4e1856c..055d3f3 100644
--- a/pulsar-functions/java-examples/pom.xml
+++ b/pulsar-functions/java-examples/pom.xml
@@ -41,6 +41,11 @@
       <artifactId>pulsar-functions-api</artifactId>
       <version>${project.version}</version>
     </dependency>
+    <dependency>
+      <groupId>org.apache.pulsar</groupId>
+      <artifactId>pulsar-client-api</artifactId>
+      <version>${project.version}</version>
+    </dependency>
   </dependencies>
 
 </project>
diff --git a/pulsar-functions/utils/pom.xml b/pulsar-functions/utils/pom.xml
index 82d9dcf..e6d0950 100644
--- a/pulsar-functions/utils/pom.xml
+++ b/pulsar-functions/utils/pom.xml
@@ -93,6 +93,12 @@
       <artifactId>typetools</artifactId>
     </dependency>
 
+    <dependency>
+        <groupId>org.apache.pulsar</groupId>
+        <artifactId>pulsar-client-original</artifactId>
+        <version>${project.version}</version>
+    </dependency>
+
   </dependencies>
 
 </project>
diff --git 
a/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/ValidatorUtils.java
 
b/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/ValidatorUtils.java
index 483ea08..72051e5 100644
--- 
a/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/ValidatorUtils.java
+++ 
b/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/ValidatorUtils.java
@@ -19,25 +19,12 @@
 
 package org.apache.pulsar.functions.utils;
 
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
 import net.jodah.typetools.TypeResolver;
-import org.apache.commons.lang.StringUtils;
 import org.apache.pulsar.client.api.Schema;
 import org.apache.pulsar.common.schema.SchemaType;
 import org.apache.pulsar.functions.api.SerDe;
-import org.apache.pulsar.functions.proto.Function;
-import org.apache.pulsar.functions.proto.Function.FunctionDetails;
 
-import java.io.File;
-import java.lang.reflect.Type;
-import java.net.MalformedURLException;
-import java.util.*;
-
-import static org.apache.commons.lang.StringUtils.isNotBlank;
-import static org.apache.commons.lang.StringUtils.isNotEmpty;
 import static org.apache.commons.lang3.StringUtils.isEmpty;
-import static org.apache.pulsar.functions.utils.Utils.loadJar;
 
 public class ValidatorUtils {
     private static final String DEFAULT_SERDE = 
"org.apache.pulsar.functions.api.utils.DefaultSerDe";
diff --git 
a/pulsar-io/kafka-connect-adaptor/src/test/java/org/apache/pulsar/io/kafka/connect/KafkaConnectSourceTest.java
 
b/pulsar-io/kafka-connect-adaptor/src/test/java/org/apache/pulsar/io/kafka/connect/KafkaConnectSourceTest.java
index f887b39..7ff8845 100644
--- 
a/pulsar-io/kafka-connect-adaptor/src/test/java/org/apache/pulsar/io/kafka/connect/KafkaConnectSourceTest.java
+++ 
b/pulsar-io/kafka-connect-adaptor/src/test/java/org/apache/pulsar/io/kafka/connect/KafkaConnectSourceTest.java
@@ -23,7 +23,6 @@ import static org.testng.Assert.assertTrue;
 
 import java.io.File;
 import java.io.OutputStream;
-import java.nio.ByteBuffer;
 import java.nio.file.Files;
 import java.util.HashMap;
 import java.util.Map;
@@ -31,7 +30,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.connect.file.FileStreamSourceConnector;
 import org.apache.kafka.connect.runtime.TaskConfig;
 import org.apache.pulsar.client.api.ProducerConsumerBase;
-import org.apache.pulsar.client.api.Schema;
 import org.apache.pulsar.common.schema.KeyValue;
 import org.apache.pulsar.functions.api.Record;
 import org.testng.annotations.AfterMethod;
diff --git 
a/pulsar-proxy/src/test/java/org/apache/pulsar/proxy/server/ProxyAuthenticationTest.java
 
b/pulsar-proxy/src/test/java/org/apache/pulsar/proxy/server/ProxyAuthenticationTest.java
index cd38628..6a3a799 100644
--- 
a/pulsar-proxy/src/test/java/org/apache/pulsar/proxy/server/ProxyAuthenticationTest.java
+++ 
b/pulsar-proxy/src/test/java/org/apache/pulsar/proxy/server/ProxyAuthenticationTest.java
@@ -21,14 +21,10 @@ package org.apache.pulsar.proxy.server;
 import static org.mockito.Mockito.spy;
 
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.TimeUnit;
 import java.util.Set;
 
 import javax.naming.AuthenticationException;
@@ -41,27 +37,19 @@ import 
org.apache.pulsar.broker.authentication.AuthenticationService;
 import org.apache.pulsar.client.admin.PulsarAdmin;
 import org.apache.pulsar.client.api.Authentication;
 import org.apache.pulsar.client.api.AuthenticationDataProvider;
-import org.apache.pulsar.client.api.Consumer;
-import org.apache.pulsar.client.api.Message;
-import org.apache.pulsar.client.api.MessageId;
-import org.apache.pulsar.client.api.Producer;
 import org.apache.pulsar.client.api.ProducerConsumerBase;
 import org.apache.pulsar.client.api.PulsarClient;
 import org.apache.pulsar.client.api.PulsarClientException;
 import org.apache.pulsar.client.api.Schema;
-import org.apache.pulsar.client.impl.ConsumerImpl;
 import org.apache.pulsar.common.configuration.PulsarConfigurationLoader;
 import org.apache.pulsar.common.policies.data.AuthAction;
-import org.apache.pulsar.common.util.FutureUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.testng.Assert;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 import com.google.common.collect.Sets;
-import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 
diff --git a/pulsar-sql/presto-distribution/LICENSE 
b/pulsar-sql/presto-distribution/LICENSE
index 4d158a4..1320f79 100644
--- a/pulsar-sql/presto-distribution/LICENSE
+++ b/pulsar-sql/presto-distribution/LICENSE
@@ -344,6 +344,7 @@ The Apache Software License, Version 2.0
     - xbean-reflect-3.4.jar
   * Avro
     - avro-1.8.2.jar
+    - avro-protobuf-1.8.2.jar
   * Javax
     - javax.inject-1.jar
     - javax.inject-1.jar
@@ -418,7 +419,6 @@ BSD License
 MIT License
  * Animal Sniffer Annotations
    - animal-sniffer-annotations-1.14.jar
-   - animal-sniffer-annotations-1.17.jar
  * Checker Qua -- checker-compat-qual-2.0.0.jar
  * PCollections
    - pcollections-2.1.2.jar
diff --git a/site/scripts/javadoc-gen.sh b/site/scripts/javadoc-gen.sh
index bdd57e8..851088c 100755
--- a/site/scripts/javadoc-gen.sh
+++ b/site/scripts/javadoc-gen.sh
@@ -36,8 +36,7 @@ 
JDK_COMMON_PKGS=java.lang:java.util:java.util.concurrent:java.nio:java.net:java.
     -noqualifier $JDK_COMMON_PKGS \
     -notimestamp \
     -Xdoclint:none \
-    `find pulsar-client/src/main/java/org/apache/pulsar/client/api -name 
*.java` \
-    `find pulsar-client-schema/src/main/java -name *.java | grep -v /impl/`
+    `find pulsar-client/src/main/java/org/apache/pulsar/client/api -name 
*.java`
 
   # Java admin
   javadoc \
diff --git a/src/check-binary-license b/src/check-binary-license
index c5d609d..de817da 100755
--- a/src/check-binary-license
+++ b/src/check-binary-license
@@ -84,7 +84,7 @@ for J in $NOTICEJARS; do
 done
 
 # check pulsar sql jars
-JARS=$(tar -tf $TARBALL | grep '\.jar' | grep 'lib/presto/' | grep -v 
'managed-ledger' | grep -v  'pulsar-client-admin' | grep -v 
'pulsar-client-schema' | grep -v 'pulsar-functions-api' | grep -v 
'pulsar-presto-connector-original' | grep -v 'pulsar-presto-distribution' | 
grep -v 'pulsar-common' | grep -v 'pulsar-functions-proto' | grep -v 
'pulsar-functions-utils' | grep -v 'pulsar-io-core' | sed 's!.*/!!' | sort)
+JARS=$(tar -tf $TARBALL | grep '\.jar' | grep 'lib/presto/' | grep -v 
'managed-ledger' | grep -v  'pulsar-client-admin' | grep -v  
'pulsar-client-api' | grep -v 'pulsar-functions-api' | grep -v 
'pulsar-presto-connector-original' | grep -v 'pulsar-presto-distribution' | 
grep -v 'pulsar-common' | grep -v 'pulsar-functions-proto' | grep -v 
'pulsar-functions-utils' | grep -v 'pulsar-io-core' | sed 's!.*/!!' | sort)
 LICENSEPATH=$(tar -tf $TARBALL  | awk '/^[^\/]*\/lib\/presto\/LICENSE/')
 LICENSE=$(tar -O -xf $TARBALL "$LICENSEPATH")
 LICENSEJARS=$(echo "$LICENSE" | sed -nE 's!.* (.*\.jar).*!\1!gp')
diff --git a/tests/integration/pom.xml b/tests/integration/pom.xml
index a7b7057..119fce49 100644
--- a/tests/integration/pom.xml
+++ b/tests/integration/pom.xml
@@ -48,12 +48,6 @@
       <artifactId>pulsar-functions-api-examples</artifactId>
       <version>${project.version}</version>
       <scope>test</scope>
-      <exclusions>
-        <exclusion>
-          <groupId>org.apache.pulsar</groupId>
-          <artifactId>pulsar-client-schema</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.apache.pulsar</groupId>
diff --git 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/CLITest.java
 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/CLITest.java
index 4311645..ce876d4 100644
--- 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/CLITest.java
+++ 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/CLITest.java
@@ -24,7 +24,6 @@ import org.apache.pulsar.client.api.Producer;
 import org.apache.pulsar.client.api.PulsarClient;
 import org.apache.pulsar.client.api.PulsarClientException;
 import org.apache.pulsar.client.api.Schema;
-import org.apache.pulsar.client.impl.schema.JSONSchema;
 import org.apache.pulsar.functions.api.examples.pojo.Tick;
 import org.apache.pulsar.tests.integration.containers.BrokerContainer;
 import org.apache.pulsar.tests.integration.docker.ContainerExecException;
diff --git 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarFunctionsTest.java
 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarFunctionsTest.java
index 94aad28..0469d80 100644
--- 
a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarFunctionsTest.java
+++ 
b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarFunctionsTest.java
@@ -23,7 +23,6 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.base.Stopwatch;
 import com.google.gson.Gson;
 

Reply via email to