Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
pulsar
提交
0ac6b9aa
pulsar
项目概览
apache
/
pulsar
通知
129
Star
40
Fork
3
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Wiki
1
Wiki
分析
仓库
DevOps
项目成员
Pages
pulsar
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Pages
分析
分析
仓库分析
DevOps
Wiki
1
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
提交
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
0ac6b9aa
编写于
3月 06, 2018
作者:
S
Sijie Guo
提交者:
GitHub
3月 06, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Shade pulsar-functions-runtime instead of pulsar-functions-worker (#1351)
上级
e0fb00b3
变更
21
隐藏空白更改
内联
并排
Showing
21 changed file
with
566 addition
and
222 deletion
+566
-222
all/pom.xml
all/pom.xml
+9
-0
all/src/assemble/bin.xml
all/src/assemble/bin.xml
+1
-1
bin/pulsar
bin/pulsar
+1
-1
bin/pulsar-admin
bin/pulsar-admin
+1
-1
pom.xml
pom.xml
+7
-2
pulsar-broker/pom.xml
pulsar-broker/pom.xml
+13
-81
pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/CmdFunctionsTest.java
...st/java/org/apache/pulsar/admin/cli/CmdFunctionsTest.java
+2
-2
pulsar-client-tools/pom.xml
pulsar-client-tools/pom.xml
+1
-76
pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java
...c/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java
+3
-3
pulsar-common/pom.xml
pulsar-common/pom.xml
+10
-1
pulsar-functions/pom.xml
pulsar-functions/pom.xml
+2
-0
pulsar-functions/runtime-all/pom.xml
pulsar-functions/runtime-all/pom.xml
+169
-0
pulsar-functions/runtime-shaded/pom.xml
pulsar-functions/runtime-shaded/pom.xml
+182
-0
pulsar-functions/runtime/pom.xml
pulsar-functions/runtime/pom.xml
+0
-34
pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/ProcessRuntime.java
...a/org/apache/pulsar/functions/runtime/ProcessRuntime.java
+29
-0
pulsar-functions/utils/pom.xml
pulsar-functions/utils/pom.xml
+14
-0
pulsar-functions/worker-shaded/pom.xml
pulsar-functions/worker-shaded/pom.xml
+34
-0
pulsar-functions/worker/pom.xml
pulsar-functions/worker/pom.xml
+79
-1
pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/FunctionAssignmentTailer.java
...che/pulsar/functions/worker/FunctionAssignmentTailer.java
+1
-2
pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/FunctionMetaDataTopicTailer.java
.../pulsar/functions/worker/FunctionMetaDataTopicTailer.java
+1
-2
pulsar-functions/worker/src/test/java/org/apache/pulsar/functions/worker/SchedulerManagerTest.java
.../apache/pulsar/functions/worker/SchedulerManagerTest.java
+7
-15
未找到文件。
all/pom.xml
浏览文件 @
0ac6b9aa
...
...
@@ -113,6 +113,15 @@
<!-- make sure the api examples are compiled before assembly -->
<scope>
provided
</scope>
</dependency>
<!-- runtime-all -->
<dependency>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-runtime-all
</artifactId>
<version>
${project.version}
</version>
<!-- make sure the api examples are compiled before assembly -->
<scope>
provided
</scope>
</dependency>
</dependencies>
<build>
...
...
all/src/assemble/bin.xml
浏览文件 @
0ac6b9aa
...
...
@@ -73,7 +73,7 @@
<fileMode>
644
</fileMode>
</file>
<file>
<source>
${basedir}/../pulsar-functions/runtime/target/java-instance.jar
</source>
<source>
${basedir}/../pulsar-functions/runtime
-all
/target/java-instance.jar
</source>
<destName>
java-instance.jar
</destName>
<outputDirectory>
instances
</outputDirectory>
</file>
...
...
bin/pulsar
浏览文件 @
0ac6b9aa
...
...
@@ -78,7 +78,7 @@ fi
# find the java instance location
if
[
!
-f
"
${
JAVA_INSTANCE_JAR
}
"
]
;
then
# didn't find a released jar, then search the built jar
BUILT_JAVA_INSTANCE_JAR
=
"
${
FUNCTIONS_HOME
}
/runtime/target/java-instance.jar"
BUILT_JAVA_INSTANCE_JAR
=
"
${
FUNCTIONS_HOME
}
/runtime
-all
/target/java-instance.jar"
if
[
-z
"
${
BUILT_JAVA_INSTANCE_JAR
}
"
]
;
then
echo
"
\n
Couldn't find pulsar-functions java instance jar."
;
echo
"Make sure you've run 'mvn package'
\n
"
;
...
...
bin/pulsar-admin
浏览文件 @
0ac6b9aa
...
...
@@ -117,7 +117,7 @@ OPTS="$OPTS -Dpulsar.routing.appender.default=$PULSAR_ROUTING_APPENDER_DEFAULT"
# find the java instance location
if
[
!
-f
"
${
JAVA_INSTANCE_JAR
}
"
]
;
then
# didn't find a released jar, then search the built jar
BUILT_JAVA_INSTANCE_JAR
=
"
${
FUNCTIONS_HOME
}
/runtime/target/java-instance.jar"
BUILT_JAVA_INSTANCE_JAR
=
"
${
FUNCTIONS_HOME
}
/runtime
-all
/target/java-instance.jar"
if
[
-f
"
${
BUILT_JAVA_INSTANCE_JAR
}
"
]
;
then
JAVA_INSTANCE_JAR
=
${
BUILT_JAVA_INSTANCE_JAR
}
else
...
...
pom.xml
浏览文件 @
0ac6b9aa
...
...
@@ -318,6 +318,12 @@ flexible messaging model and an intuitive client API.</description>
<version>
${netty.version}
</version>
</dependency>
<dependency>
<groupId>
io.netty
</groupId>
<artifactId>
netty-tcnative-boringssl-static
</artifactId>
<version>
2.0.7.Final
</version>
</dependency>
<dependency>
<groupId>
io.netty
</groupId>
<artifactId>
netty
</artifactId>
...
...
@@ -731,9 +737,8 @@ flexible messaging model and an intuitive client API.</description>
<dependency>
<!-- We use MockedBookKeeper in many unit tests -->
<groupId>
org.apache.bookkeeper
</groupId>
<artifactId>
bookkeeper-server
</artifactId>
<artifactId>
bookkeeper-server
-tests-shaded
</artifactId>
<version>
${bookkeeper.version}
</version>
<classifier>
tests
</classifier>
<scope>
test
</scope>
<exclusions>
<exclusion>
...
...
pulsar-broker/pom.xml
浏览文件 @
0ac6b9aa
...
...
@@ -54,6 +54,18 @@
<artifactId>
netty-all
</artifactId>
</dependency>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
pulsar-common
</artifactId>
<version>
${project.version}
</version>
<exclusions>
<exclusion>
<groupId>
org.apache.bookkeeper
</groupId>
<artifactId>
circe-checksum
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
pulsar-client-original
</artifactId>
...
...
@@ -123,88 +135,8 @@
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
pulsar-functions-worker
-shaded
</artifactId>
<artifactId>
pulsar-functions-worker
</artifactId>
<version>
${project.version}
</version>
<exclusions>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-all
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-lite
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-java
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf.nano
</groupId>
<artifactId>
protobuf-javanano
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-java-util
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-protobuf
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-protobuf-lite
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-protobuf-nano
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-utils
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-metrics
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-runtime
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-instance
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-worker
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
net.jodah
</groupId>
<artifactId>
typetools
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-api
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.google.code.gson
</groupId>
<artifactId>
gson
</artifactId>
</dependency>
<dependency>
<groupId>
org.glassfish.jersey.media
</groupId>
<artifactId>
jersey-media-multipart
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.distributedlog
</groupId>
<artifactId>
distributedlog-core-shaded
</artifactId>
</dependency>
<!-- functions related dependencies (end) -->
...
...
pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/CmdFunctionsTest.java
浏览文件 @
0ac6b9aa
...
...
@@ -31,8 +31,8 @@ import static org.powermock.api.mockito.PowerMockito.mockStatic;
import
static
org
.
testng
.
Assert
.
assertEquals
;
import
static
org
.
testng
.
Assert
.
assertNull
;
import
io.netty.buffer.ByteBuf
;
import
io.netty.buffer.ByteBufUtil
;
import
org.apache.pulsar.functions.shaded.
io.netty.buffer.ByteBuf
;
import
org.apache.pulsar.functions.shaded.
io.netty.buffer.ByteBufUtil
;
import
java.io.File
;
import
java.net.URI
;
import
java.util.concurrent.atomic.AtomicReference
;
...
...
pulsar-client-tools/pom.xml
浏览文件 @
0ac6b9aa
...
...
@@ -76,83 +76,8 @@
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
pulsar-functions-worker
-shaded
</artifactId>
<artifactId>
pulsar-functions-worker
</artifactId>
<version>
${project.version}
</version>
<exclusions>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-all
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-lite
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-java
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf.nano
</groupId>
<artifactId>
protobuf-javanano
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-java-util
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-protobuf
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-protobuf-lite
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-protobuf-nano
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-utils
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-metrics
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-runtime
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-instance
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-worker
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
net.jodah
</groupId>
<artifactId>
typetools
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-api
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.google.code.gson
</groupId>
<artifactId>
gson
</artifactId>
</dependency>
<dependency>
<groupId>
org.glassfish.jersey.media
</groupId>
<artifactId>
jersey-media-multipart
</artifactId>
</dependency>
<!-- functions related dependencies (end) -->
...
...
pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java
浏览文件 @
0ac6b9aa
...
...
@@ -30,9 +30,9 @@ import com.google.gson.Gson;
import
com.google.gson.GsonBuilder
;
import
com.google.gson.JsonParser
;
import
com.google.gson.reflect.TypeToken
;
import
io.netty.buffer.ByteBuf
;
import
io.netty.buffer.ByteBufUtil
;
import
io.netty.buffer.Unpooled
;
import
org.apache.pulsar.functions.shaded.
io.netty.buffer.ByteBuf
;
import
org.apache.pulsar.functions.shaded.
io.netty.buffer.ByteBufUtil
;
import
org.apache.pulsar.functions.shaded.
io.netty.buffer.Unpooled
;
import
java.net.MalformedURLException
;
import
lombok.Getter
;
import
lombok.extern.slf4j.Slf4j
;
...
...
pulsar-common/pom.xml
浏览文件 @
0ac6b9aa
...
...
@@ -70,12 +70,21 @@
<groupId>
org.apache.bookkeeper
</groupId>
<artifactId>
circe-checksum
</artifactId>
<version>
${bookkeeper.version}
</version>
<exclusions>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-buffer
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-common
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
io.netty
</groupId>
<artifactId>
netty-tcnative-boringssl-static
</artifactId>
<version>
2.0.7.Final
</version>
</dependency>
</dependencies>
</project>
pulsar-functions/pom.xml
浏览文件 @
0ac6b9aa
...
...
@@ -38,6 +38,8 @@
<module>
metrics
</module>
<module>
instance
</module>
<module>
runtime
</module>
<module>
runtime-shaded
</module>
<module>
runtime-all
</module>
<module>
worker
</module>
<module>
worker-shaded
</module>
<module>
java-examples
</module>
...
...
pulsar-functions/runtime-all/pom.xml
0 → 100644
浏览文件 @
0ac6b9aa
<?xml version="1.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/maven-v4_0_0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions
</artifactId>
<version>
2.0.0-incubating-SNAPSHOT
</version>
<relativePath>
..
</relativePath>
</parent>
<artifactId>
pulsar-functions-runtime-all
</artifactId>
<name>
Pulsar Functions :: Runtime All
</name>
<dependencies>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
pulsar-functions-runtime-shaded
</artifactId>
<version>
${project.parent.version}
</version>
<exclusions>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-all
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-lite
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-java
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf.nano
</groupId>
<artifactId>
protobuf-javanano
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-java-util
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-protobuf
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-protobuf-lite
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-protobuf-nano
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-api
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-utils
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-metrics
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-runtime
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-instance
</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- logging -->
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-slf4j-impl
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-api
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-core
</artifactId>
</dependency>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
pulsar-client-original
</artifactId>
<version>
${project.parent.version}
</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-shade-plugin
</artifactId>
<executions>
<execution>
<phase>
package
</phase>
<goals>
<goal>
shade
</goal>
</goals>
<configuration>
<finalName>
java-instance
</finalName>
<transformers>
<transformer
implementation=
"org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"
>
<mainClass>
org.openjdk.jmh.Main
</mainClass>
</transformer>
</transformers>
<artifactSet>
<excludes>
<exclude>
io.netty:netty-common
</exclude>
<exclude>
io.netty:netty-buffer
</exclude>
<exclude>
io.netty:netty-codec-http2
</exclude>
<exclude>
io.netty:netty-codec-http
</exclude>
<exclude>
io.netty:netty-codec-socks
</exclude>
<exclude>
io.netty:netty-codec
</exclude>
<exclude>
io.netty:netty-handler
</exclude>
<exclude>
io.netty:netty-handler-proxy
</exclude>
<exclude>
io.netty:netty-transport
</exclude>
<exclude>
io.netty:netty-resolver
</exclude>
</excludes>
</artifactSet>
<filters>
<filter>
<!-- Shading signed JARs will fail without
this. http://stackoverflow.com/questions/999489/invalid-signature-file-when-attempting-to-run-a-jar -->
<artifact>
*:*
</artifact>
<excludes>
<exclude>
META-INF/*.SF
</exclude>
<exclude>
META-INF/*.DSA
</exclude>
<exclude>
META-INF/*.RSA
</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
pulsar-functions/runtime-shaded/pom.xml
0 → 100644
浏览文件 @
0ac6b9aa
<?xml version="1.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/maven-v4_0_0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions
</artifactId>
<version>
2.0.0-incubating-SNAPSHOT
</version>
<relativePath>
..
</relativePath>
</parent>
<artifactId>
pulsar-functions-runtime-shaded
</artifactId>
<name>
Pulsar Functions :: Runtime Shaded
</name>
<dependencies>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
pulsar-functions-runtime
</artifactId>
<version>
${project.parent.version}
</version>
<exclusions>
<!-- exclude `pulsar-client-admin-shaded-for-functions` here, this allows worker and runtime to use unshaded clients -->
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-client-admin-shaded-for-functions
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-common
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-codec
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-codec-http
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-codec-http2
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-handler-proxy
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-handler
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-buffer
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-buffer
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.bookkeeper
</groupId>
<artifactId>
bookkeeper-common
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.bookkeeper.stats
</groupId>
<artifactId>
bookkeeper-stats-api
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
org.apache.bookkeeper
</groupId>
<artifactId>
bookkeeper-server-shaded
</artifactId>
</dependency>
<dependency>
<groupId>
io.netty
</groupId>
<artifactId>
netty-all
</artifactId>
<version>
4.1.12.Final
</version>
</dependency>
</dependencies>
<build>
<plugins>
<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>
<minimizeJar>
false
</minimizeJar>
<artifactSet>
<includes>
<include>
com.google.protobuf:protobuf-lite
</include>
<include>
com.google.protobuf:protobuf-java
</include>
<include>
com.google.protobuf.nano:protobuf-javanano
</include>
<include>
com.google.protobuf:protobuf-java-util
</include>
<include>
com.google.instrumentation:instrumentation-api
</include>
<include>
com.google.api.grpc:proto-google-common-protos
</include>
<include>
com.google.auth:google-auth-library-credentials
</include>
<include>
com.google.errorprone:error_prone_annotations
</include>
<include>
com.squareup.okhttp:okhttp
</include>
<include>
com.squareup.okio:okio
</include>
<include>
org.inferred:freebuilder
</include>
<include>
com.google.googlejavaformat:google-java-format
</include>
<include>
com.google.errorprone:javac
</include>
<include>
net.jodah:typetools
</include>
<include>
com.beust:jcommander
</include>
<include>
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml
</include>
<include>
org.yaml:snakeyaml
</include>
<!-- dependencies use protobuf -->
<include>
org.apache.pulsar:pulsar-functions-proto
</include>
<include>
org.apache.pulsar:pulsar-functions-utils
</include>
<include>
org.apache.pulsar:pulsar-functions-metrics
</include>
<include>
org.apache.pulsar:pulsar-functions-instance
</include>
<include>
org.apache.pulsar:pulsar-functions-runtime
</include>
<include>
org.apache.pulsar:pulsar-functions-api
</include>
<!-- protobuf dependencies in grpc -->
<include>
io.grpc:*
</include>
<!-- bookkeeper key/value service -->
<include>
org.apache.bookkeeper:stream-storage-java-client
</include>
<include>
io.netty:netty-all
</include>
<!-- dependencies to include when using shaded pulsar client-->
<!--
<include>com.fasterxml.jackson.core:jackson-core</include>
<include>com.fasterxml.jackson.core:jackson-databind</include>
<include>com.fasterxml.jackson.core:jackson-annotations</include>
<include>org.apache.commons:commons-lang3</include>
<include>com.yahoo.datasketches:sketches-core</include>
<include>com.google.guava:guava</include>
<include>org.apache.bookkeeper:bookkeeper-common</include>
<include>org.apache.bookkeeper.stats:bookkeeper-stats-api</include>
<include>com.google.code.gson:gson</include>
-->
</includes>
</artifactSet>
<relocations>
<!-- bookkeeper shading rule -->
<relocation>
<pattern>
com.google.protobuf
</pattern>
<shadedPattern>
org.apache.pulsar.functions.shaded.com.google.protobuf
</shadedPattern>
</relocation>
<relocation>
<pattern>
io.netty
</pattern>
<shadedPattern>
org.apache.pulsar.functions.shaded.io.netty
</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
pulsar-functions/runtime/pom.xml
浏览文件 @
0ac6b9aa
...
...
@@ -54,40 +54,6 @@
<build>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-shade-plugin
</artifactId>
<version>
2.2
</version>
<executions>
<execution>
<phase>
package
</phase>
<goals>
<goal>
shade
</goal>
</goals>
<configuration>
<finalName>
java-instance
</finalName>
<transformers>
<transformer
implementation=
"org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"
>
<mainClass>
org.openjdk.jmh.Main
</mainClass>
</transformer>
</transformers>
<filters>
<filter>
<!-- Shading signed JARs will fail without
this. http://stackoverflow.com/questions/999489/invalid-signature-file-when-attempting-to-run-a-jar -->
<artifact>
*:*
</artifact>
<excludes>
<exclude>
META-INF/*.SF
</exclude>
<exclude>
META-INF/*.DSA
</exclude>
<exclude>
META-INF/*.RSA
</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
<!-- this task is used for copy all python files together to provide a instance directory
for running python instance -->
<plugin>
...
...
pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/ProcessRuntime.java
浏览文件 @
0ac6b9aa
...
...
@@ -26,6 +26,7 @@ import com.google.gson.Gson;
import
com.google.protobuf.Empty
;
import
io.grpc.ManagedChannel
;
import
io.grpc.ManagedChannelBuilder
;
import
java.util.concurrent.ExecutionException
;
import
lombok.Getter
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.pulsar.functions.instance.InstanceConfig
;
...
...
@@ -39,6 +40,7 @@ import java.io.InputStream;
import
java.net.ServerSocket
;
import
java.util.*
;
import
java.util.concurrent.CompletableFuture
;
import
org.apache.pulsar.functions.proto.InstanceControlGrpc.InstanceControlFutureStub
;
/**
* A function container implemented using java thread.
...
...
@@ -300,4 +302,31 @@ class ProcessRuntime implements Runtime {
}
return
startupException
;
}
public
static
void
main
(
String
[]
args
)
throws
ExecutionException
,
InterruptedException
{
int
port
=
Integer
.
parseInt
(
args
[
0
]);
ManagedChannel
channel
=
ManagedChannelBuilder
.
forAddress
(
"127.0.0.1"
,
port
)
.
usePlaintext
(
true
)
.
build
();
InstanceControlFutureStub
stub
=
InstanceControlGrpc
.
newFutureStub
(
channel
);
ListenableFuture
<
FunctionStatus
>
response
=
stub
.
getFunctionStatus
(
Empty
.
newBuilder
().
build
());
CompletableFuture
<
FunctionStatus
>
future
=
new
CompletableFuture
<>();
Futures
.
addCallback
(
response
,
new
FutureCallback
<
FunctionStatus
>()
{
@Override
public
void
onFailure
(
Throwable
throwable
)
{
log
.
info
(
"GetFunctionStatus:"
,
throwable
);
future
.
completeExceptionally
(
throwable
);
}
@Override
public
void
onSuccess
(
InstanceCommunication
.
FunctionStatus
t
)
{
log
.
info
(
"GetFunctionStatus: {}"
,
t
);
future
.
complete
(
t
);
}
});
FunctionStatus
status
=
future
.
get
();
log
.
info
(
"Function Status : {}"
,
status
);
}
}
pulsar-functions/utils/pom.xml
浏览文件 @
0ac6b9aa
...
...
@@ -39,6 +39,14 @@
<version>
${project.version}
</version>
<!-- exclude shaded dependencies to avoid conflicts -->
<exclusions>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-client-admin-original
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-client-original
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-lang3
</artifactId>
...
...
@@ -110,6 +118,12 @@
</exclusions>
</dependency>
<dependency>
<groupId>
io.netty
</groupId>
<artifactId>
netty-all
</artifactId>
<version>
4.1.12.Final
</version>
</dependency>
<dependency>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-proto
</artifactId>
...
...
pulsar-functions/worker-shaded/pom.xml
浏览文件 @
0ac6b9aa
...
...
@@ -49,6 +49,34 @@
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-client-admin-shaded-for-functions
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-common
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-codec
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-codec-http
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-codec-http2
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-handler-proxy
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-handler
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-buffer
</artifactId>
</exclusion>
</exclusions>
</dependency>
...
...
@@ -56,6 +84,12 @@
<dependency>
<groupId>
org.apache.bookkeeper
</groupId>
<artifactId>
bookkeeper-server-shaded
</artifactId>
<exclusions>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-all
</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
...
...
pulsar-functions/worker/pom.xml
浏览文件 @
0ac6b9aa
...
...
@@ -36,7 +36,85 @@
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
pulsar-functions-runtime
</artifactId>
<artifactId>
pulsar-functions-runtime-shaded
</artifactId>
<version>
${project.version}
</version>
<exclusions>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-all
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-lite
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-java
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf.nano
</groupId>
<artifactId>
protobuf-javanano
</artifactId>
</exclusion>
<exclusion>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-java-util
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-protobuf
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-protobuf-lite
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-protobuf-nano
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-api
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-utils
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-metrics
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-runtime
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.apache.pulsar
</groupId>
<artifactId>
pulsar-functions-instance
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-transport
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-resolver
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-codec-socks
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
pulsar-client-original
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
pulsar-client-admin-original
</artifactId>
<version>
${project.version}
</version>
</dependency>
...
...
pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/FunctionAssignmentTailer.java
浏览文件 @
0ac6b9aa
...
...
@@ -18,7 +18,6 @@
*/
package
org.apache.pulsar.functions.worker
;
import
com.google.protobuf.InvalidProtocolBufferException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.pulsar.client.api.Message
;
import
org.apache.pulsar.client.api.PulsarClientException
;
...
...
@@ -78,7 +77,7 @@ public class FunctionAssignmentTailer
Request
.
AssignmentsUpdate
assignmentsUpdate
;
try
{
assignmentsUpdate
=
Request
.
AssignmentsUpdate
.
parseFrom
(
msg
.
getData
());
}
catch
(
I
nvalidProtocolBuffer
Exception
e
)
{
}
catch
(
I
O
Exception
e
)
{
log
.
error
(
"Received bad assignment update at message {}"
,
msg
.
getMessageId
(),
e
);
// TODO: find a better way to handle bad request
throw
new
RuntimeException
(
e
);
...
...
pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/FunctionMetaDataTopicTailer.java
浏览文件 @
0ac6b9aa
...
...
@@ -21,7 +21,6 @@ package org.apache.pulsar.functions.worker;
import
java.io.IOException
;
import
java.util.function.Function
;
import
com.google.protobuf.InvalidProtocolBufferException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.pulsar.client.api.Message
;
import
org.apache.pulsar.client.api.PulsarClientException
;
...
...
@@ -68,7 +67,7 @@ public class FunctionMetaDataTopicTailer
try
{
serviceRequest
=
ServiceRequest
.
parseFrom
(
msg
.
getData
());
}
catch
(
I
nvalidProtocolBuffer
Exception
e
)
{
}
catch
(
I
O
Exception
e
)
{
log
.
error
(
"Received bad service request at message {}"
,
msg
.
getMessageId
(),
e
);
// TODO: find a better way to handle bad request
throw
new
RuntimeException
(
e
);
...
...
pulsar-functions/worker/src/test/java/org/apache/pulsar/functions/worker/SchedulerManagerTest.java
浏览文件 @
0ac6b9aa
...
...
@@ -18,7 +18,6 @@
*/
package
org.apache.pulsar.functions.worker
;
import
com.google.protobuf.InvalidProtocolBufferException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.pulsar.client.api.MessageId
;
import
org.apache.pulsar.client.api.Producer
;
...
...
@@ -94,8 +93,7 @@ public class SchedulerManagerTest {
}
@Test
public
void
testSchedule
()
throws
PulsarClientException
,
NoSuchMethodException
,
InterruptedException
,
TimeoutException
,
ExecutionException
{
public
void
testSchedule
()
throws
Exception
{
List
<
Function
.
FunctionMetaData
>
functionMetaDataList
=
new
LinkedList
<>();
long
version
=
5
;
...
...
@@ -139,8 +137,7 @@ public class SchedulerManagerTest {
}
@Test
public
void
testNothingNewToSchedule
()
throws
InterruptedException
,
ExecutionException
,
NoSuchMethodException
,
InvalidProtocolBufferException
,
TimeoutException
{
public
void
testNothingNewToSchedule
()
throws
Exception
{
List
<
Function
.
FunctionMetaData
>
functionMetaDataList
=
new
LinkedList
<>();
long
version
=
5
;
...
...
@@ -191,8 +188,7 @@ public class SchedulerManagerTest {
}
@Test
public
void
testAddingFunctions
()
throws
NoSuchMethodException
,
InterruptedException
,
InvalidProtocolBufferException
,
TimeoutException
,
ExecutionException
{
public
void
testAddingFunctions
()
throws
Exception
{
List
<
Function
.
FunctionMetaData
>
functionMetaDataList
=
new
LinkedList
<>();
long
version
=
5
;
Function
.
FunctionMetaData
function1
=
Function
.
FunctionMetaData
.
newBuilder
()
...
...
@@ -255,8 +251,7 @@ public class SchedulerManagerTest {
}
@Test
public
void
testDeletingFunctions
()
throws
NoSuchMethodException
,
InterruptedException
,
InvalidProtocolBufferException
,
TimeoutException
,
ExecutionException
{
public
void
testDeletingFunctions
()
throws
Exception
{
List
<
Function
.
FunctionMetaData
>
functionMetaDataList
=
new
LinkedList
<>();
long
version
=
5
;
Function
.
FunctionMetaData
function1
=
Function
.
FunctionMetaData
.
newBuilder
()
...
...
@@ -322,8 +317,7 @@ public class SchedulerManagerTest {
}
@Test
public
void
testScalingUp
()
throws
NoSuchMethodException
,
InterruptedException
,
InvalidProtocolBufferException
,
PulsarClientException
,
TimeoutException
,
ExecutionException
{
public
void
testScalingUp
()
throws
Exception
{
List
<
Function
.
FunctionMetaData
>
functionMetaDataList
=
new
LinkedList
<>();
long
version
=
5
;
Function
.
FunctionMetaData
function1
=
Function
.
FunctionMetaData
.
newBuilder
()
...
...
@@ -432,8 +426,7 @@ public class SchedulerManagerTest {
}
@Test
public
void
testScalingDown
()
throws
PulsarClientException
,
NoSuchMethodException
,
InterruptedException
,
InvalidProtocolBufferException
,
TimeoutException
,
ExecutionException
{
public
void
testScalingDown
()
throws
Exception
{
List
<
Function
.
FunctionMetaData
>
functionMetaDataList
=
new
LinkedList
<>();
long
version
=
5
;
Function
.
FunctionMetaData
function1
=
Function
.
FunctionMetaData
.
newBuilder
()
...
...
@@ -543,8 +536,7 @@ public class SchedulerManagerTest {
}
@Test
public
void
testUpdate
()
throws
PulsarClientException
,
NoSuchMethodException
,
InterruptedException
,
InvalidProtocolBufferException
,
TimeoutException
,
ExecutionException
{
public
void
testUpdate
()
throws
Exception
{
List
<
Function
.
FunctionMetaData
>
functionMetaDataList
=
new
LinkedList
<>();
long
version
=
5
;
Function
.
FunctionMetaData
function1
=
Function
.
FunctionMetaData
.
newBuilder
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录