-
Notifications
You must be signed in to change notification settings - Fork 100
/
sigtest
executable file
·67 lines (61 loc) · 2.01 KB
/
sigtest
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/sh
#
# Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0, which is available at
# http://www.eclipse.org/legal/epl-2.0.
#
# This Source Code may also be made available under the following Secondary
# Licenses when the conditions for such availability set forth in the
# Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
# version 2 with the GNU Classpath Exception, which is available at
# https://www.gnu.org/software/classpath/license.html.
#
# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
#
#
# Compare API against a signature file.
#
# Usage: sigtest jakarta.mail.jar mail.sig
#
SIGTEST=${SIGTEST:-/java/re/sigtest/4.0/promoted/fcs/latest/binaries/sigtest-4.0}
# The apicheck program isn't working correctly, use sigtest instead.
#APICHECK_JAR=$SIGTEST/lib/apicheck.jar
SIGTEST_JAR=$SIGTEST/lib/sigtestdev.jar
JAVA_HOME=${JAVA_HOME:-/opt/jdk1.8}
USAGE="sigtest [-b] [-p package] jakarta.mail.jar mail.sig"
PKG=jakarta.mail
BACKWARD=
PLATSIG=/tmp/$$.platform.sig
while getopts bp: opt
do
case $opt in
p) PKG="$OPTARG";;
b) BACKWARD=-backward;;
\?) echo $USAGE; exit 1;;
esac
done
shift `expr $OPTIND - 1`
JAR="$1"
SIG="$2"
shift 2
ver=$($JAVA_HOME/bin/java -version 2>&1 | sed -e 's/.*"\(.*\)".*/\1/;q')
case "$ver" in
1.[0-9]*) xjimage=;
cp="${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/jre/lib/jce.jar";;
*) xjimage="-xjimage ${JAVA_HOME}/bin/jimage";
cp="${JAVA_HOME}/lib/modules";;
esac
echo '*** Generate JDK signatures ***'
${JAVA_HOME}/bin/java -jar $SIGTEST_JAR setup \
-classpath "$cp" $xjimage \
-filename "$PLATSIG" -package java -package javax -keepfile \
-verbose nowarn
echo
echo '*** Check Jakarta Mail signatures ***'
${JAVA_HOME}/bin/java -jar $SIGTEST_JAR test -static \
-classpath "$PLATSIG:$JAR" \
-filename "$SIG" -package "$PKG" -out /dev/stdout \
-nomerge -checkvalue -mode src $BACKWARD "$@"
rm "$PLATSIG"