Skip to content

Commit

Permalink
Merge pull request #244 from mendix/DEP-1560_UpgradeJava
Browse files Browse the repository at this point in the history
Upgrade to Oracle Java 8u202
  • Loading branch information
svanderburg authored Apr 15, 2019
2 parents 41df2fe + 44ac031 commit c231093
Show file tree
Hide file tree
Showing 8 changed files with 58 additions and 40 deletions.
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ python:
install: 'pip3 install -r tests/requirements.txt'

before_script:
- wget --quiet "https://cli.run.pivotal.io/stable?release=debian64&version=6.30.0&source=github-rel" -O cli.deb
- wget --quiet "https://packages.cloudfoundry.org/stable?release=debian64&version=6.43.0&source=github-rel" -O cli.deb
- sudo dpkg -i cli.deb
- sudo curl -s https://download.mendix.com/Mendix-CA-G2.crt -o /usr/local/share/ca-certificates/ca.crt
- sudo update-ca-certificates

script:
- make test
- travis_wait 45 make test

notifications:
email: false
55 changes: 29 additions & 26 deletions lib/buildpackutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import json
import logging
import os
import re
import subprocess
import sys
from distutils.util import strtobool
Expand Down Expand Up @@ -160,25 +161,35 @@ class NotFoundException(Exception):


def get_java_version(mx_version):
versions = {"7": "7u80", "8u51": "8u51", "8": "8", "8u202": "8u202"}

if mx_version >= MXVersion("8"):
default = "8u202"
elif mx_version >= MXVersion("7.23.1"):
default = "8u202"
if mx_version >= MXVersion("7.23.1"):
java_version = {
"version": os.getenv("JAVA_VERSION", "8u202"),
"vendor": "AdoptOpenJDK",
}
elif mx_version >= MXVersion("6.6"):
default = "8"
java_version = {
"version": os.getenv("JAVA_VERSION", "8u202"),
"vendor": "oracle",
}
elif mx_version >= MXVersion("5.18"):
default = "8u51"
java_version = {
"version": os.getenv("JAVA_VERSION", "8u51"),
"vendor": "oracle",
}
else:
default = "7"
main_java_version = os.getenv("JAVA_VERSION", default)
java_version = {
"version": os.getenv("JAVA_VERSION", "7u80"),
"vendor": "oracle",
}

if main_java_version not in list(versions.keys()):
if not re.match(r"^\d+u\d+$", java_version["version"]):
raise Exception(
"Invalid Java version specified: %s" % main_java_version
"Invalid Java version specified: {}".format(
java_version["version"]
)
)
return versions[main_java_version]

return java_version


def get_mpr_file_from_dir(directory):
Expand Down Expand Up @@ -328,22 +339,14 @@ def ensure_and_get_mono(mx_version, cache_dir):


def _determine_jdk(mx_version, package="jdk"):
oracle_jdks = ("7", "8u51", "8")
adoptopenjdk_jdks = ("8u202",)
java_version = get_java_version(mx_version)

if java_version in oracle_jdks:
return {"version": java_version, "type": package, "vendor": "oracle"}
elif java_version in adoptopenjdk_jdks:
return {
"version": java_version,
"type": "AdoptOpenJDK-{}".format(package),
"vendor": "AdoptOpenJDK",
}
if java_version["vendor"] == "AdoptOpenJDK":
java_version.update({"type": "AdoptOpenJDK-{}".format(package)})
else:
raise Exception(
"Unknown java version identifier: {}".format(java_version)
)
java_version.update({"type": package})

return java_version


def _compose_jvm_target_dir(jdk):
Expand Down
4 changes: 2 additions & 2 deletions start.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def get_current_buildpack_commit():


logger.info(
"Started Mendix Cloud Foundry Buildpack v3.1.0 [commit:%s]",
"Started Mendix Cloud Foundry Buildpack v3.1.2 [commit:%s]",
get_current_buildpack_commit(),
)
logging.getLogger("m2ee").propagate = False
Expand Down Expand Up @@ -847,7 +847,7 @@ def set_up_m2ee_client(vcap_data):
)
java_version = buildpackutil.get_java_version(
m2ee.config.get_runtime_version()
)
)["version"]
set_jvm_memory(m2ee.config._conf["m2ee"], vcap_data, java_version)
set_jvm_locale(m2ee.config._conf["m2ee"], java_version)
set_user_provided_java_options(m2ee.config._conf["m2ee"])
Expand Down
2 changes: 1 addition & 1 deletion tests/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,6 @@ cleanup

echo 'starting test run, tests will run in parallel and output shown at the end'
export PYTHONPATH=$PWD/../lib/
nosetests -s -vv --processes=10 --process-timeout=900 --with-timer usecase/
nosetests --verbosity=3 --processes=5 --process-timeout=900 --with-timer usecase/

cleanup
22 changes: 17 additions & 5 deletions tests/usecase/test_fastdeploy.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@ class TestCaseFastdeploy(basetest.BaseTest):
def setUp(self):
super().setUp()
self.setUpCF(
"MontBlancApp720.mpk",
env_vars={"DEPLOY_PASSWORD": self.mx_password},
"ci-buildpack-test-app-mx7-18-3.mpk",
env_vars={
"DEPLOY_PASSWORD": self.mx_password,
"USE_DATA_SNAPSHOT": "false",
},
)
self.startApp()

Expand All @@ -18,15 +21,24 @@ def test_fast_deploy(self):
"wget",
"--quiet",
"https://s3-eu-west-1.amazonaws.com"
"/mx-buildpack-ci/MontBlancApp720b.mpk",
"/mx-buildpack-ci/ci-buildpack-test-app-mx7-18-3.mpk",
)
)
full_uri = "https://" + self.app_name + "/_mxbuild/"
time.sleep(10)

max = 12
for attempt in range(0, max):
time.sleep(10)
r = requests.get(full_uri, auth=("deploy", self.mx_password))
if r.status_code == 501:
break
if attempt == max - 1:
raise Exception("Starting MxBuild takes too long")

r = requests.post(
full_uri,
auth=("deploy", self.mx_password),
files={"file": open("MontBlancApp720b.mpk", "rb")},
files={"file": open("ci-buildpack-test-app-mx7-18-3.mpk", "rb")},
)

if r.status_code != 200:
Expand Down
4 changes: 2 additions & 2 deletions tests/usecase/test_jdk_versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ def test_oracle_jdk_8(self):
jdk = buildpackutil._determine_jdk("7.16.0", "jre")
target_dir = buildpackutil._compose_jvm_target_dir(jdk)

assert jdk["version"] == "8"
assert target_dir == "usr/lib/jvm/jre-8-oracle-x64"
assert jdk["version"] == "8u202"
assert target_dir == "usr/lib/jvm/jre-8u202-oracle-x64"

self._check_java_presence(target_dir)

Expand Down
5 changes: 4 additions & 1 deletion tests/usecase/test_mono4.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@ def setUp(self):
super().setUp()
self.setUpCF(
"MontBlancApp720.mpk",
env_vars={"DEPLOY_PASSWORD": self.mx_password},
env_vars={
"DEPLOY_PASSWORD": self.mx_password,
"DEVELOPMENT_MODE": True,
},
)
self.startApp()

Expand Down
2 changes: 1 addition & 1 deletion tests/usecase/test_mxadmin_exposed_authorized.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
class TestCaseMxAdminExposed(basetest.BaseTest):
def setUp(self):
super().setUp()
self.setUpCF("MontBlancApp720.mpk")
self.setUpCF("BuildpackTestApp-mx-7-16.mda")
self.startApp()

def test_mxadmin_exposed_unauthorized(self):
Expand Down

0 comments on commit c231093

Please sign in to comment.