Skip to content

Commit

Permalink
Merge pull request #49 from DeNA/java11
Browse files Browse the repository at this point in the history
support Java11
  • Loading branch information
funa-tk authored Nov 8, 2019
2 parents c894238 + b7ac3d6 commit 1de0e04
Show file tree
Hide file tree
Showing 15 changed files with 217 additions and 309 deletions.
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
build:
docker:
# specify the version you desire here
- image: circleci/openjdk:8-jdk
- image: circleci/openjdk:11-jdk

# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
Expand Down
110 changes: 45 additions & 65 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ plugins {
id 'java'
id 'application'
id 'eclipse'
id 'de.set.ecj' version '1.1.0'
id 'me.champeau.gradle.jmh' version '0.4.5'
id 'com.bmuschko.izpack' version '3.0'
id "com.github.hierynomus.license" version"0.15.0"
Expand Down Expand Up @@ -44,10 +43,11 @@ dependencies {
compile 'com.github.mobius-software-ltd:mqtt-parser:parser-1.0.3'
compile 'net.arnx:jsonic:1.3.0'
compile 'org.json:json:20180813'
izpack 'org.codehaus.izpack:izpack-dist:5.1.3'
compile 'com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.10.0'
compile 'com.fasterxml.jackson.core:jackson-databind:2.10.0'
compile 'org.msgpack:jackson-dataformat-msgpack:0.8.18'
compile 'org.bouncycastle:bcpkix-jdk15on:1.64'
izpack 'org.codehaus.izpack:izpack-dist:5.1.3'

// load additional dena modules if it exists
['dena/', 'denaN/'].each { def dir ->
Expand Down Expand Up @@ -88,8 +88,8 @@ task setName(dependsOn: "setVersion") {
project.ext.nameInstaller = "PacketProxy-${project.ext.version}-Installer.jar"
project.ext.nameMacInstallApp = "PacketProxy-${project.ext.version}-Installer-Mac.app"
project.ext.nameMacRelease = "PacketProxy-${project.ext.version}-Installer-Mac.zip"
project.ext.nameMacSignedReleaseWOExt = "PacketProxy-${project.ext.version}-Installer-Mac-Signed"
project.ext.nameMacSignedRelease = "${project.ext.nameMacSignedReleaseWOExt}.dmg"
project.ext.nameMacSignedReleaseJPackage = "PacketProxy-${project.ext.version}.dmg"
project.ext.nameMacSignedRelease = "PacketProxy-${project.ext.version}-Installer-Mac-Signed.dmg"
project.ext.nameWin32Release = "PacketProxy-${project.ext.version}-Installer-Win32.jar"
project.ext.nameWin64Release = "PacketProxy-${project.ext.version}-Installer-Win64.jar"
}
Expand All @@ -103,7 +103,8 @@ task setPath(dependsOn: "setName") {
project.ext.pathMacInstaller = "${project.ext.pathMacWorkDir}/${project.ext.nameInstaller}"
project.ext.pathMacInstallApp = "${project.ext.pathMacWorkDir}/${project.ext.nameMacInstallApp}"
project.ext.pathMacRelease = "${project.ext.pathMacWorkDir}/${project.ext.nameMacRelease}"
project.ext.pathMacSignedRelease = "${project.ext.pathMacWorkDir}/bundles/${project.ext.nameMacSignedRelease}"
project.ext.pathMacSignedReleaseJPackage = "${project.ext.pathMacWorkDir}/${project.ext.nameMacSignedReleaseJPackage}"
project.ext.pathMacSignedRelease = "${project.ext.pathMacWorkDir}/${project.ext.nameMacSignedRelease}"
// Win32
project.ext.pathWin32WorkDir = "${buildDir}/distributions/win32"
project.ext.pathWin32Target = "${project.ext.pathWin32WorkDir}/target"
Expand All @@ -119,8 +120,7 @@ task setPath(dependsOn: "setName") {
task setAppleSignInfo {
project.ext.appleId = "[email protected]"
project.ext.applePasswd = "@keychain:AC_PASSWORD" // read from keychain
project.ext.signedKey = "Developer ID Application: XXXX (123456ABCD)"
project.ext.signedPrefix = "123456ABCD"
project.ext.signedKey = "YOURNAME (123456ABCD)"
}

eclipse {
Expand Down Expand Up @@ -200,26 +200,26 @@ jar {
)
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it).matching {
exclude "META-INF/**"
}
}
}
}

task prepareJavaPackager(dependsOn: "jar") {
task prepareJPackage(dependsOn: "jar") {
doFirst {
def workDir = "${project.ext.pathMacWorkDir}"
delete "${workDir}"
new File("${workDir}").mkdirs()
download {
src "https://d3pxv6yz143wms.cloudfront.net/8.222.10.1/amazon-corretto-8.222.10.1-macosx-x64.tar.gz"
dest "${workDir}/OpenJDK8.tar.gz"
src "https://d3pxv6yz143wms.cloudfront.net/11.0.3.7.1/amazon-corretto-11.0.3.7.1-macosx-x64.tar.gz"
dest "${workDir}/OpenJDK11.tar.gz"
}
copy {
from tarTree(resources.gzip("${workDir}/OpenJDK8.tar.gz"))
into file("${workDir}/OpenJDK8")
}
exec {
workingDir "${workDir}"
commandLine = ["sh", "-c", "${projectDir}/installer/fix-jdk.sh ${workDir}/OpenJDK8/amazon-corretto-8.jdk/Contents/Home"]
from tarTree(resources.gzip("${workDir}/OpenJDK11.tar.gz"))
into file("${workDir}/OpenJDK11")
}
// create icon
copy {
Expand Down Expand Up @@ -267,30 +267,23 @@ class CreateWinTarget extends DefaultTask {
}
project.download {
src "${jdkUrl}"
dest "${workDir}/OpenJDK8.zip"
dest "${workDir}/OpenJDK11.zip"
}
project.copy {
from project.zipTree("${workDir}/OpenJDK8.zip")
into project.file("${workDir}/OpenJDK8")
from project.zipTree("${workDir}/OpenJDK11.zip")
into project.file("${workDir}/OpenJDK11")
}
project.copy {
from project.file("${workDir}/OpenJDK8/jdk1.8.0_222")
into project.file("${targetDir}/OpenJDK8")
from project.file("${workDir}/OpenJDK11/jdk11.0.3_7")
into project.file("${targetDir}/OpenJDK11")
}
project.delete "${targetDir}/OpenJDK8/javafx-src.zip", "${targetDir}/OpenJDK8/src.zip", "${targetDir}/OpenJDK8/demo", "${targetDir}/OpenJDK8/sample"
}
}

task createWin32Target(type: CreateWinTarget, dependsOn: ['jar', 'downloadLicenses']) {
workDir = project.ext.pathWin32WorkDir
targetDir = project.ext.pathWin32Target
jdkUrl = 'https://d3pxv6yz143wms.cloudfront.net/8.222.10.1/amazon-corretto-8.222.10.3-windows-x86-jdk.zip'
}

task createWin64Target(type: CreateWinTarget, dependsOn: ['jar', 'downloadLicenses']) {
workDir = project.ext.pathWin64WorkDir
targetDir = project.ext.pathWin64Target
jdkUrl = 'https://d3pxv6yz143wms.cloudfront.net/8.222.10.1/amazon-corretto-8.222.10.3-windows-x64-jdk.zip'
jdkUrl = 'https://d3pxv6yz143wms.cloudfront.net/11.0.3.7.1/amazon-corretto-11.0.3.7.1-windows-x64.zip'
}

task preIzpack {
Expand All @@ -310,16 +303,6 @@ task preIzpack {
}
}

task izpackWin32 (type: CreateInstallerTask, dependsOn: ['createWin32Target', 'preIzpack']) {
baseDir = file(project.ext.pathWin32Target)
installFile = file("${projectDir}/installer/izpack/installer.xml")
outputFile = file(project.ext.pathWin32Installer)
compression = 'deflate'
compressionLevel = 9
appProperties = ['app.group': 'PacketProxy', 'app.name': 'PacketProxy', 'app.title': 'PacketProxy',
'app.version': project.ext.version, 'app.subpath': "PacketProxy-${project.ext.version}"]
}

task izpackWin64 (type: CreateInstallerTask, dependsOn: ['createWin64Target', 'preIzpack']) {
baseDir = file(project.ext.pathWin64Target)
installFile = file("${projectDir}/installer/izpack/installer.xml")
Expand All @@ -330,26 +313,28 @@ task izpackWin64 (type: CreateInstallerTask, dependsOn: ['createWin64Target', 'p
'app.version': project.ext.version, 'app.subpath': "PacketProxy-${project.ext.version}"]
}

task createMacInstaller(type: Exec, dependsOn: "prepareJavaPackager") {
task createMacJPackage(type: Exec, dependsOn: "prepareJPackage") {
workingDir "${projectDir}"
commandLine = [
"/Library/Java/JavaVirtualMachines/jdk-14-jpackage.jdk/Contents/Home/bin/jpackage",
"--verbose",
"--package-type", "dmg",
"-d", "${project.ext.pathMacWorkDir}",
"-n", "PacketProxy",
"-i", "${buildDir}/libs/",
"--app-version", project.ext.version,
"--icon", "${project.ext.pathMacWorkDir}/icon.icns",
"--main-jar", "PacketProxy.jar",
"--mac-sign",
"--mac-signing-key-user-name", "${project.ext.signedKey}"
]
onlyIf { Os.isFamily(Os.FAMILY_MAC) }
}

task createMacInstaller(type: Exec, dependsOn: "createMacJPackage") {
workingDir "${projectDir}"
commandLine = [
"${project.ext.pathMacWorkDir}/OpenJDK8/amazon-corretto-8.jdk/Contents/Home/bin/javapackager",
"-deploy",
"-native", "dmg",
"-srcfiles", "${buildDir}/libs/PacketProxy.jar",
"-appclass", "packetproxy/PacketProxy",
"-name", "PacketProxy",
"-outdir", "${project.ext.pathMacWorkDir}",
"-outfile", "${project.ext.nameMacSignedReleaseWOExt}",
"-Bicon=${project.ext.pathMacWorkDir}/icon.icns",
"-Bruntime=${project.ext.pathMacWorkDir}/OpenJDK8/amazon-corretto-8.jdk/Contents/Home",
"-Bmac.CFBundleIdentifier=packetproxy.PacketProxy",
"-Bmac.CFBundleName=PacketProxy",
"-Bmac.CFBundleVersion=${project.ext.version}",
"-Bmac.signing-key-developer-id-app=${project.ext.signedKey}",
"-Bmac.bundle-id-signing-prefix=${project.ext.signedPrefix}",
"-Bmac.installerName=${project.ext.nameMacSignedReleaseWOExt}",
"-v"
"mv", project.ext.pathMacSignedReleaseJPackage, project.ext.pathMacSignedRelease
]
onlyIf { Os.isFamily(Os.FAMILY_MAC) }
}
Expand All @@ -368,12 +353,6 @@ task notaryMacInstaller(type: Exec) {
onlyIf { Os.isFamily(Os.FAMILY_MAC) }
}

task createWin32Release(type: Copy, dependsOn: 'izpackWin32') {
from "${project.ext.pathWin32Installer}"
into "${project.ext.pathWin32WorkDir}"
rename("${project.ext.nameInstaller}", "${project.ext.nameWin32Release}")
}

task createWin64Release(type: Copy, dependsOn: 'izpackWin64') {
from "${project.ext.pathWin64Installer}"
into "${project.ext.pathWin64WorkDir}"
Expand All @@ -384,7 +363,8 @@ task createMacRelease(dependsOn: 'createMacInstaller') {
/* do nothing */
}

task createWinRelease(dependsOn: ['createWin32Release', 'createWin64Release']) {
task createWinRelease(dependsOn: 'createWin64Release') {
/* do nothing */
}

task release(dependsOn: ['createMacRelease', 'createWinRelease']) {
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
3 changes: 1 addition & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#Tue Jun 04 11:23:27 JST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
22 changes: 19 additions & 3 deletions gradlew
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
#!/usr/bin/env sh

#
# Copyright 2015 the original author or authors.
#
# Licensed 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
#
# https://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.
#

##############################################################################
##
## Gradle start up script for UN*X
Expand Down Expand Up @@ -28,7 +44,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
Expand Down Expand Up @@ -109,8 +125,8 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi

# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
Expand Down
18 changes: 17 additions & 1 deletion gradlew.bat
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem

@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
Expand All @@ -14,7 +30,7 @@ set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"

@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
Expand Down
18 changes: 0 additions & 18 deletions installer/fix-jdk.sh

This file was deleted.

2 changes: 1 addition & 1 deletion installer/izpack/installer.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<info>
<appname>PacketProxy</appname>
<appversion>0.0</appversion>
<appversion>1.0</appversion>
<appsubpath>packetproxy</appsubpath>
<javaversion>1.6</javaversion>
<uninstaller path="$INSTALL_PATH/PacketProxyUninstaller/" name="uninstaller.jar" write="yes" os="mac"/>
Expand Down
2 changes: 1 addition & 1 deletion installer/izpack/shortcutSpec.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
location="applications"/>
<shortcut
name="PacketProxy"
target="$INSTALL_PATH\OpenJDK8\bin\javaw.exe"
target="$INSTALL_PATH\OpenJDK11\bin\javaw.exe"
commandLine="-jar &quot;$INSTALL_PATH\PacketProxy.jar&quot;"
description="start PacketProxy"
iconFile="$INSTALL_PATH\PacketProxy.ico"
Expand Down
6 changes: 1 addition & 5 deletions src/main/java/core/packetproxy/PacketProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,11 @@
import java.io.File;
import java.io.InputStream;
import java.sql.SQLException;
import java.util.Locale;
import java.util.ResourceBundle;

import javax.swing.JOptionPane;

import org.apache.commons.io.IOUtils;

import com.sun.org.apache.xml.internal.security.utils.I18n;

import packetproxy.common.ClientKeyManager;
import packetproxy.common.I18nString;
import packetproxy.common.Utils;
Expand All @@ -41,7 +37,7 @@ public static void main(String[] args) {
if (Utils.supportedJava() == false) {
JOptionPane.showMessageDialog(
null,
I18nString.get("PacketProxy can be executed with JDK8 only"),
I18nString.get("PacketProxy can be executed with JDK11 only"),
I18nString.get("Error"),
JOptionPane.ERROR_MESSAGE);
return;
Expand Down
7 changes: 3 additions & 4 deletions src/main/java/core/packetproxy/common/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,9 @@
import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;

import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.ArrayUtils;

import com.sun.org.apache.xml.internal.security.utils.Base64;

import packetproxy.util.PacketProxyUtility;

public class Utils {
Expand Down Expand Up @@ -178,7 +177,7 @@ public static byte[] executeRuby(String... command) throws Exception
while ((len = in.read(buffer, 0, 4096)) > 0) {
bout.write(buffer, 0, len);
}
return Base64.decode(bout.toByteArray());
return Base64.decodeBase64(bout.toByteArray());
}

public static byte[] readfile(String filename) throws Exception
Expand Down Expand Up @@ -253,7 +252,7 @@ public static boolean isPrintable(byte[] data){
}

public static boolean supportedJava() {
if (executedByJDK() == true && javaVersionIs1_8() == true) {
if (executedByJDK() == true) {
return true;
}
return false;
Expand Down
Loading

0 comments on commit 1de0e04

Please sign in to comment.