Skip to content

Commit 780e8df

Browse files
authored
[Optimize][Admin] Optimized the package size of the App and the rs protocol (#3985)
Co-authored-by: zackyoungh <zackyoungh@users.noreply.github.com>
1 parent ccda836 commit 780e8df

File tree

11 files changed

+105
-40
lines changed

11 files changed

+105
-40
lines changed

dinky-admin/src/main/java/org/dinky/url/RsURLStreamHandlerFactory.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,27 +23,30 @@
2323

2424
import java.net.URLStreamHandler;
2525
import java.net.URLStreamHandlerFactory;
26-
import java.util.Arrays;
27-
import java.util.List;
2826

2927
import org.springframework.context.annotation.Profile;
3028

3129
import cn.hutool.core.lang.Singleton;
32-
import cn.hutool.core.util.StrUtil;
3330

3431
@Profile("!test")
3532
public class RsURLStreamHandlerFactory implements URLStreamHandlerFactory {
36-
private final List<String> notContains = Arrays.asList("jar", "file", "http", "https");
33+
private static final String PREFIX = "sun.net.www.protocol";
3734

3835
@Override
3936
public URLStreamHandler createURLStreamHandler(String protocol) {
40-
if ("rs".equals(protocol)) {
37+
if ("rs".equalsIgnoreCase(protocol)) {
4138
return new RsURLStreamHandler();
4239
}
43-
for (String tempProtocol : notContains) {
44-
if (tempProtocol.equals(StrUtil.sub(protocol, 0, tempProtocol.length()))) {
45-
return null;
46-
}
40+
String name = PREFIX + "." + protocol + ".Handler";
41+
try {
42+
@SuppressWarnings("deprecation")
43+
Object o = Class.forName(name).newInstance();
44+
return (URLStreamHandler) o;
45+
} catch (ClassNotFoundException x) {
46+
// ignore
47+
} catch (Exception e) {
48+
// For compatibility, all Exceptions are ignored.
49+
// any number of exceptions can get thrown here
4750
}
4851

4952
try {

dinky-app/dinky-app-1.14/pom.xml

Lines changed: 44 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -64,25 +64,56 @@
6464
<plugins>
6565
<plugin>
6666
<groupId>org.apache.maven.plugins</groupId>
67-
<artifactId>maven-assembly-plugin</artifactId>
68-
<version>2.6</version>
67+
<artifactId>maven-shade-plugin</artifactId>
6968
<configuration>
70-
<descriptorRefs>
71-
<descriptorRef>jar-with-dependencies</descriptorRef>
72-
</descriptorRefs>
73-
<archive>
74-
<manifest>
75-
<!-- 可以设置jar包的入口类(可选) -->
76-
<mainClass>org.dinky.app.MainApp</mainClass>
77-
</manifest>
78-
</archive>
69+
<finalName>${project.build.finalName}-jar-with-dependencies</finalName>
7970
<outputDirectory>${project.parent.parent.basedir}/build/extends</outputDirectory>
71+
<minimizeJar>true</minimizeJar>
72+
<createDependencyReducedPom>false</createDependencyReducedPom>
73+
<filters>
74+
<filter>
75+
<artifact>org.dinky:*</artifact>
76+
<includes>
77+
<include>org/dinky/**</include>
78+
<include>org/apache/flink/**</include>
79+
<include>org/apache/calcite/**</include>
80+
<include>META-INF/**</include>
81+
</includes>
82+
</filter>
83+
<filter>
84+
<artifact>*:*</artifact>
85+
<excludes>
86+
<exclude>tpch/**</exclude>
87+
<exclude>tpcds/**</exclude>
88+
<exclude>support/**</exclude>
89+
<exclude>springfox/**</exclude>
90+
<exclude>org/slf4j/**</exclude>
91+
<exclude>org/springframework/**</exclude>
92+
<exclude>javax/**</exclude>
93+
<exclude>javassist/**</exclude>
94+
<exclude>Class50/**</exclude>
95+
<exclude>lombok/**</exclude>
96+
<exclude>freemarker/**</exclude>
97+
<exclude>META-INF/resources/**</exclude>
98+
<exclude>META-INF/spring/**</exclude>
99+
<exclude>META-INF/services/javax**</exclude>
100+
<exclude>META-INF/services/lombok**</exclude>
101+
<exclude>META-INF/services/org.apache.logging**</exclude>
102+
</excludes>
103+
</filter>
104+
</filters>
105+
106+
<transformers>
107+
<!--设置主函数-->
108+
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
109+
<mainClass>org.dinky.app.MainApp</mainClass>
110+
</transformer>
111+
</transformers>
80112
</configuration>
81113
<executions>
82114
<execution>
83-
<id>make-assembly</id>
84115
<goals>
85-
<goal>single</goal>
116+
<goal>shade</goal>
86117
</goals>
87118
<phase>package</phase>
88119
</execution>

dinky-app/dinky-app-1.15/pom.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@
7474
<artifact>org.dinky:*</artifact>
7575
<includes>
7676
<include>org/dinky/**</include>
77+
<include>org/apache/flink/**</include>
78+
<include>org/apache/calcite/**</include>
7779
<include>META-INF/**</include>
7880
</includes>
7981
</filter>
@@ -91,8 +93,11 @@
9193
<exclude>Class50/**</exclude>
9294
<exclude>lombok/**</exclude>
9395
<exclude>freemarker/**</exclude>
94-
<exclude>com.sun/**</exclude>
9596
<exclude>META-INF/resources/**</exclude>
97+
<exclude>META-INF/spring/**</exclude>
98+
<exclude>META-INF/services/javax**</exclude>
99+
<exclude>META-INF/services/lombok**</exclude>
100+
<exclude>META-INF/services/org.apache.logging**</exclude>
96101
</excludes>
97102
</filter>
98103
</filters>

dinky-app/dinky-app-1.16/pom.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@
5858
<artifact>org.dinky:*</artifact>
5959
<includes>
6060
<include>org/dinky/**</include>
61+
<include>org/apache/flink/**</include>
62+
<include>org/apache/calcite/**</include>
6163
<include>META-INF/**</include>
6264
</includes>
6365
</filter>
@@ -75,8 +77,11 @@
7577
<exclude>Class50/**</exclude>
7678
<exclude>lombok/**</exclude>
7779
<exclude>freemarker/**</exclude>
78-
<exclude>com.sun/**</exclude>
7980
<exclude>META-INF/resources/**</exclude>
81+
<exclude>META-INF/spring/**</exclude>
82+
<exclude>META-INF/services/javax**</exclude>
83+
<exclude>META-INF/services/lombok**</exclude>
84+
<exclude>META-INF/services/org.apache.logging**</exclude>
8085
</excludes>
8186
</filter>
8287
</filters>

dinky-app/dinky-app-1.17/pom.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@
5858
<artifact>org.dinky:*</artifact>
5959
<includes>
6060
<include>org/dinky/**</include>
61+
<include>org/apache/flink/**</include>
62+
<include>org/apache/calcite/**</include>
6163
<include>META-INF/**</include>
6264
</includes>
6365
</filter>
@@ -75,8 +77,11 @@
7577
<exclude>Class50/**</exclude>
7678
<exclude>lombok/**</exclude>
7779
<exclude>freemarker/**</exclude>
78-
<exclude>com.sun/**</exclude>
7980
<exclude>META-INF/resources/**</exclude>
81+
<exclude>META-INF/spring/**</exclude>
82+
<exclude>META-INF/services/javax**</exclude>
83+
<exclude>META-INF/services/lombok**</exclude>
84+
<exclude>META-INF/services/org.apache.logging**</exclude>
8085
</excludes>
8186
</filter>
8287
</filters>

dinky-app/dinky-app-1.18/pom.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@
5858
<artifact>org.dinky:*</artifact>
5959
<includes>
6060
<include>org/dinky/**</include>
61+
<include>org/apache/flink/**</include>
62+
<include>org/apache/calcite/**</include>
6163
<include>META-INF/**</include>
6264
</includes>
6365
</filter>
@@ -75,8 +77,11 @@
7577
<exclude>Class50/**</exclude>
7678
<exclude>lombok/**</exclude>
7779
<exclude>freemarker/**</exclude>
78-
<exclude>com.sun/**</exclude>
7980
<exclude>META-INF/resources/**</exclude>
81+
<exclude>META-INF/spring/**</exclude>
82+
<exclude>META-INF/services/javax**</exclude>
83+
<exclude>META-INF/services/lombok**</exclude>
84+
<exclude>META-INF/services/org.apache.logging**</exclude>
8085
</excludes>
8186
</filter>
8287
</filters>

dinky-app/dinky-app-1.19/pom.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@
5858
<artifact>org.dinky:*</artifact>
5959
<includes>
6060
<include>org/dinky/**</include>
61+
<include>org/apache/flink/**</include>
62+
<include>org/apache/calcite/**</include>
6163
<include>META-INF/**</include>
6264
</includes>
6365
</filter>
@@ -75,8 +77,11 @@
7577
<exclude>Class50/**</exclude>
7678
<exclude>lombok/**</exclude>
7779
<exclude>freemarker/**</exclude>
78-
<exclude>com.sun/**</exclude>
7980
<exclude>META-INF/resources/**</exclude>
81+
<exclude>META-INF/spring/**</exclude>
82+
<exclude>META-INF/services/javax**</exclude>
83+
<exclude>META-INF/services/lombok**</exclude>
84+
<exclude>META-INF/services/org.apache.logging**</exclude>
8085
</excludes>
8186
</filter>
8287
</filters>

dinky-app/dinky-app-1.20/pom.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@
5858
<artifact>org.dinky:*</artifact>
5959
<includes>
6060
<include>org/dinky/**</include>
61+
<include>org/apache/flink/**</include>
62+
<include>org/apache/calcite/**</include>
6163
<include>META-INF/**</include>
6264
</includes>
6365
</filter>
@@ -75,8 +77,11 @@
7577
<exclude>Class50/**</exclude>
7678
<exclude>lombok/**</exclude>
7779
<exclude>freemarker/**</exclude>
78-
<exclude>com.sun/**</exclude>
7980
<exclude>META-INF/resources/**</exclude>
81+
<exclude>META-INF/spring/**</exclude>
82+
<exclude>META-INF/services/javax**</exclude>
83+
<exclude>META-INF/services/lombok**</exclude>
84+
<exclude>META-INF/services/org.apache.logging**</exclude>
8085
</excludes>
8186
</filter>
8287
</filters>

dinky-app/dinky-app-base/src/main/java/org/dinky/app/flinksql/Submitter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ public static Optional<JobClient> executeJarJob(String type, Executor executor,
259259
ReadableConfig configuration =
260260
executor.getStreamExecutionEnvironment().getConfiguration();
261261
List<String> jars = configuration.get(PipelineOptions.JARS);
262-
List<URL> jarsUrl = jars.stream().map(URLUtil::getURL).collect(Collectors.toList());
262+
List<URL> jarsUrl = jars.stream().map(URLUtil::url).collect(Collectors.toList());
263263
Pipeline pipeline = executeJarOperation.getStreamGraph(executor.getCustomTableEnvironment(), jarsUrl);
264264
if (pipeline instanceof StreamGraph) {
265265
// stream job

dinky-client/dinky-client-base/src/main/java/org/dinky/url/RsURLStreamHandlerFactory.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,24 @@
2121

2222
import java.net.URLStreamHandler;
2323
import java.net.URLStreamHandlerFactory;
24-
import java.util.Arrays;
25-
import java.util.List;
26-
27-
import cn.hutool.core.util.StrUtil;
2824

2925
public class RsURLStreamHandlerFactory implements URLStreamHandlerFactory {
3026
private static final String PREFIX = "sun.net.www.protocol";
31-
private final List<String> notContains = Arrays.asList("jar", "file", "http", "https");
3227

3328
@Override
3429
public URLStreamHandler createURLStreamHandler(String protocol) {
35-
for (String tempProtocol : notContains) {
36-
if (tempProtocol.equals(StrUtil.sub(protocol, 0, tempProtocol.length()))) {
37-
return null;
38-
}
30+
String name = PREFIX + "." + protocol + ".Handler";
31+
try {
32+
@SuppressWarnings("deprecation")
33+
Object o = Class.forName(name).newInstance();
34+
return (URLStreamHandler) o;
35+
} catch (ClassNotFoundException x) {
36+
// ignore
37+
} catch (Exception e) {
38+
// For compatibility, all Exceptions are ignored.
39+
// any number of exceptions can get thrown here
3940
}
41+
4042
if (ResourceFileSystem.URI_SCHEMA.getScheme().equals(protocol)) {
4143
return new RsURLStreamHandler();
4244
}
@@ -45,7 +47,6 @@ public URLStreamHandler createURLStreamHandler(String protocol) {
4547
} catch (Throwable e) {
4648
return null;
4749
}
48-
String name = PREFIX + "." + protocol + ".Handler";
4950
try {
5051
@SuppressWarnings("deprecation")
5152
Object o = Class.forName(name).newInstance();

0 commit comments

Comments
 (0)