Skip to content

Commit e2361c9

Browse files
authored
optimize: remove binary from source code (apache#6597)
1 parent 8bd23f3 commit e2361c9

11 files changed

+243
-91
lines changed

.gitattributes

+16
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one or more
2+
# contributor license agreements. See the NOTICE file distributed with
3+
# this work for additional information regarding copyright ownership.
4+
# The ASF licenses this file to You under the Apache License, Version 2.0
5+
# (the "License"); you may not use this file except in compliance with
6+
# the License. You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
#
16+
117
*.js linguist-language=java
218
*.css linguist-language=java
319
*.html linguist-language=java

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ target/
88
*.class
99
.flattened-pom.xml
1010
dependency-reduced-pom.xml
11+
.mvn/wrapper/maven-wrapper.jar
1112

1213
# eclipse ignore
1314
.settings/

.licenserc.yaml

-6
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,6 @@ header:
3737
3838
paths-ignore:
3939
- '.gitignore'
40-
- '.gitattributes'
41-
- '.travis.yml'
42-
- 'codecov.yml'
4340
- 'CONTRIBUTING.md'
4441
- 'CONTRIBUTING_CN.md'
4542
- 'CODE_OF_CONDUCT.md'
@@ -61,10 +58,7 @@ header:
6158
- 'style/**'
6259
- 'script/**'
6360
- 'seata-plugins/**'
64-
- '.mvn/**'
6561
- 'sessionStore/**'
66-
- 'distribution/LICENSE-BIN'
67-
- 'distribution/NOTICE-BIN'
6862
- 'test/src/test/resources/**'
6963
- 'serializer/seata-serializer-protobuf/src/main/resources/protobuf/org/apache/seata/protocol/transcation/*.proto'
7064
- 'saga/seata-saga-statemachine-designer/node_modules/**'

.mvn/wrapper/maven-wrapper.jar

-46.7 KB
Binary file not shown.

.mvn/wrapper/maven-wrapper.properties

+17
Original file line numberDiff line numberDiff line change
@@ -1 +1,18 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# https://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
117
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
18+
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar

.travis.yml

+15
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one or more
2+
# contributor license agreements. See the NOTICE file distributed with
3+
# this work for additional information regarding copyright ownership.
4+
# The ASF licenses this file to You under the Apache License, Version 2.0
5+
# (the "License"); you may not use this file except in compliance with
6+
# the License. You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
#
116
language: java
217
sudo: false # faster builds
318

changes/en-us/2.x.md

+1
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ Add changes here for all PR submitted to the 2.x branch.
146146
- [[#6576](https://github.com/apache/incubator-seata/pull/6576)] remove oracle datatype parser
147147
- [[#6583](https://github.com/apache/incubator-seata/pull/6583)] optimize the default compilation to be independent of the Git Env
148148
- [[#6585](https://github.com/apache/incubator-seata/pull/6585)] optimize compatible module pom.xml
149+
- [[#6597](https://github.com/apache/incubator-seata/pull/6597)] remove binary from source code
149150

150151
### security:
151152
- [[#6069](https://github.com/apache/incubator-seata/pull/6069)] Upgrade Guava dependencies to fix security vulnerabilities

changes/zh-cn/2.x.md

+1
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@
145145
- [[#6576](https://github.com/apache/incubator-seata/pull/6576)] 移除 oracle 数据类型序列化扩展
146146
- [[#6583](https://github.com/apache/incubator-seata/pull/6583)] 优化默认编译不依赖 Git 环境
147147
- [[#6585](https://github.com/apache/incubator-seata/pull/6585)] 优化 compatible 模块的配置
148+
- [[#6597](https://github.com/apache/incubator-seata/pull/6597)] 从源码中移除 binary 包
148149

149150
### security:
150151
- [[#6069](https://github.com/apache/incubator-seata/pull/6069)] 升级Guava依赖版本,修复安全漏洞

codecov.yml

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#
21
# Licensed to the Apache Software Foundation (ASF) under one or more
32
# contributor license agreements. See the NOTICE file distributed with
43
# this work for additional information regarding copyright ownership.

mvnw

+120-60
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,32 @@
11
#!/bin/sh
22
# ----------------------------------------------------------------------------
3+
# Licensed to the Apache Software Foundation (ASF) under one
4+
# or more contributor license agreements. See the NOTICE file
5+
# distributed with this work for additional information
6+
# regarding copyright ownership. The ASF licenses this file
7+
# to you under the Apache License, Version 2.0 (the
8+
# "License"); you may not use this file except in compliance
9+
# with the License. You may obtain a copy of the License at
310
#
4-
# Licensed to the Apache Software Foundation (ASF) under one or more
5-
# contributor license agreements. See the NOTICE file distributed with
6-
# this work for additional information regarding copyright ownership.
7-
# The ASF licenses this file to You under the Apache License, Version 2.0
8-
# (the "License"); you may not use this file except in compliance with
9-
# the License. You may obtain a copy of the License at
10-
#
11-
# http://www.apache.org/licenses/LICENSE-2.0
12-
#
13-
# Unless required by applicable law or agreed to in writing, software
14-
# distributed under the License is distributed on an "AS IS" BASIS,
15-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16-
# See the License for the specific language governing permissions and
17-
# limitations under the License.
11+
# http://www.apache.org/licenses/LICENSE-2.0
1812
#
13+
# Unless required by applicable law or agreed to in writing,
14+
# software distributed under the License is distributed on an
15+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16+
# KIND, either express or implied. See the License for the
17+
# specific language governing permissions and limitations
18+
# under the License.
1919
# ----------------------------------------------------------------------------
2020

2121
# ----------------------------------------------------------------------------
22-
# Maven2 Start Up Batch script
22+
# Apache Maven Wrapper startup batch script, version 3.1.1
2323
#
2424
# Required ENV vars:
2525
# ------------------
2626
# JAVA_HOME - location of a JDK home dir
2727
#
2828
# Optional ENV vars
2929
# -----------------
30-
# M2_HOME - location of maven2's installed home dir
3130
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
3231
# e.g. to debug Maven itself, use
3332
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@@ -36,6 +35,10 @@
3635

3736
if [ -z "$MAVEN_SKIP_RC" ] ; then
3837

38+
if [ -f /usr/local/etc/mavenrc ] ; then
39+
. /usr/local/etc/mavenrc
40+
fi
41+
3942
if [ -f /etc/mavenrc ] ; then
4043
. /etc/mavenrc
4144
fi
@@ -58,9 +61,9 @@ case "`uname`" in
5861
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
5962
if [ -z "$JAVA_HOME" ]; then
6063
if [ -x "/usr/libexec/java_home" ]; then
61-
export JAVA_HOME="`/usr/libexec/java_home`"
64+
JAVA_HOME="`/usr/libexec/java_home`"; export JAVA_HOME
6265
else
63-
export JAVA_HOME="/Library/Java/Home"
66+
JAVA_HOME="/Library/Java/Home"; export JAVA_HOME
6467
fi
6568
fi
6669
;;
@@ -72,36 +75,8 @@ if [ -z "$JAVA_HOME" ] ; then
7275
fi
7376
fi
7477

75-
if [ -z "$M2_HOME" ] ; then
76-
## resolve links - $0 may be a link to maven's home
77-
PRG="$0"
78-
79-
# need this for relative symlinks
80-
while [ -h "$PRG" ] ; do
81-
ls=`ls -ld "$PRG"`
82-
link=`expr "$ls" : '.*-> \(.*\)$'`
83-
if expr "$link" : '/.*' > /dev/null; then
84-
PRG="$link"
85-
else
86-
PRG="`dirname "$PRG"`/$link"
87-
fi
88-
done
89-
90-
saveddir=`pwd`
91-
92-
M2_HOME=`dirname "$PRG"`/..
93-
94-
# make it fully qualified
95-
M2_HOME=`cd "$M2_HOME" && pwd`
96-
97-
cd "$saveddir"
98-
# echo Using m2 at $M2_HOME
99-
fi
100-
10178
# For Cygwin, ensure paths are in UNIX format before anything is touched
10279
if $cygwin ; then
103-
[ -n "$M2_HOME" ] &&
104-
M2_HOME=`cygpath --unix "$M2_HOME"`
10580
[ -n "$JAVA_HOME" ] &&
10681
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
10782
[ -n "$CLASSPATH" ] &&
@@ -110,11 +85,8 @@ fi
11085

11186
# For Mingw, ensure paths are in UNIX format before anything is touched
11287
if $mingw ; then
113-
[ -n "$M2_HOME" ] &&
114-
M2_HOME="`(cd "$M2_HOME"; pwd)`"
11588
[ -n "$JAVA_HOME" ] &&
11689
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
117-
# TODO classpath?
11890
fi
11991

12092
if [ -z "$JAVA_HOME" ]; then
@@ -146,7 +118,7 @@ if [ -z "$JAVACMD" ] ; then
146118
JAVACMD="$JAVA_HOME/bin/java"
147119
fi
148120
else
149-
JAVACMD="`which java`"
121+
JAVACMD="`\\unset -f command; \\command -v java`"
150122
fi
151123
fi
152124

@@ -160,12 +132,9 @@ if [ -z "$JAVA_HOME" ] ; then
160132
echo "Warning: JAVA_HOME environment variable is not set."
161133
fi
162134

163-
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
164-
165135
# traverses directory structure from process work directory to filesystem root
166136
# first directory with .mvn subdirectory is considered project base directory
167137
find_maven_basedir() {
168-
169138
if [ -z "$1" ]
170139
then
171140
echo "Path not specified to find_maven_basedir"
@@ -185,7 +154,7 @@ find_maven_basedir() {
185154
fi
186155
# end of workaround
187156
done
188-
echo "${basedir}"
157+
printf '%s' "$(cd "$basedir"; pwd)"
189158
}
190159

191160
# concatenates all lines of a file
@@ -195,21 +164,106 @@ concat_lines() {
195164
fi
196165
}
197166

198-
BASE_DIR=`find_maven_basedir "$(pwd)"`
167+
BASE_DIR=$(find_maven_basedir "$(dirname $0)")
199168
if [ -z "$BASE_DIR" ]; then
200169
exit 1;
201170
fi
202171

203-
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
172+
MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR
204173
if [ "$MVNW_VERBOSE" = true ]; then
205174
echo $MAVEN_PROJECTBASEDIR
206175
fi
176+
177+
##########################################################################################
178+
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
179+
# This allows using the maven wrapper in projects that prohibit checking in binary data.
180+
##########################################################################################
181+
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
182+
if [ "$MVNW_VERBOSE" = true ]; then
183+
echo "Found .mvn/wrapper/maven-wrapper.jar"
184+
fi
185+
else
186+
if [ "$MVNW_VERBOSE" = true ]; then
187+
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
188+
fi
189+
if [ -n "$MVNW_REPOURL" ]; then
190+
wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
191+
else
192+
wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
193+
fi
194+
while IFS="=" read key value; do
195+
case "$key" in (wrapperUrl) wrapperUrl="$value"; break ;;
196+
esac
197+
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
198+
if [ "$MVNW_VERBOSE" = true ]; then
199+
echo "Downloading from: $wrapperUrl"
200+
fi
201+
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
202+
if $cygwin; then
203+
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
204+
fi
205+
206+
if command -v wget > /dev/null; then
207+
QUIET="--quiet"
208+
if [ "$MVNW_VERBOSE" = true ]; then
209+
echo "Found wget ... using wget"
210+
QUIET=""
211+
fi
212+
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
213+
wget $QUIET "$wrapperUrl" -O "$wrapperJarPath"
214+
else
215+
wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath"
216+
fi
217+
[ $? -eq 0 ] || rm -f "$wrapperJarPath"
218+
elif command -v curl > /dev/null; then
219+
QUIET="--silent"
220+
if [ "$MVNW_VERBOSE" = true ]; then
221+
echo "Found curl ... using curl"
222+
QUIET=""
223+
fi
224+
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
225+
curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L
226+
else
227+
curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L
228+
fi
229+
[ $? -eq 0 ] || rm -f "$wrapperJarPath"
230+
else
231+
if [ "$MVNW_VERBOSE" = true ]; then
232+
echo "Falling back to using Java to download"
233+
fi
234+
javaSource="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
235+
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class"
236+
# For Cygwin, switch paths to Windows format before running javac
237+
if $cygwin; then
238+
javaSource=`cygpath --path --windows "$javaSource"`
239+
javaClass=`cygpath --path --windows "$javaClass"`
240+
fi
241+
if [ -e "$javaSource" ]; then
242+
if [ ! -e "$javaClass" ]; then
243+
if [ "$MVNW_VERBOSE" = true ]; then
244+
echo " - Compiling MavenWrapperDownloader.java ..."
245+
fi
246+
# Compiling the Java class
247+
("$JAVA_HOME/bin/javac" "$javaSource")
248+
fi
249+
if [ -e "$javaClass" ]; then
250+
# Running the downloader
251+
if [ "$MVNW_VERBOSE" = true ]; then
252+
echo " - Running MavenWrapperDownloader.java ..."
253+
fi
254+
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
255+
fi
256+
fi
257+
fi
258+
fi
259+
##########################################################################################
260+
# End of extension
261+
##########################################################################################
262+
207263
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
208264

209265
# For Cygwin, switch paths to Windows format before running java
210266
if $cygwin; then
211-
[ -n "$M2_HOME" ] &&
212-
M2_HOME=`cygpath --path --windows "$M2_HOME"`
213267
[ -n "$JAVA_HOME" ] &&
214268
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
215269
[ -n "$CLASSPATH" ] &&
@@ -218,10 +272,16 @@ if $cygwin; then
218272
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
219273
fi
220274

275+
# Provide a "standardized" way to retrieve the CLI args that will
276+
# work with both Windows and non-Windows executions.
277+
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
278+
export MAVEN_CMD_LINE_ARGS
279+
221280
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
222281

223282
exec "$JAVACMD" \
224283
$MAVEN_OPTS \
284+
$MAVEN_DEBUG_OPTS \
225285
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
226-
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
227-
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
286+
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
287+
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

0 commit comments

Comments
 (0)