diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml
index 486ee6ccb3..b42701ef75 100644
--- a/.github/workflows/build-test.yml
+++ b/.github/workflows/build-test.yml
@@ -24,13 +24,13 @@ jobs:
name: Check / Tests -> JDK-${{ matrix.jdk }}/${{ matrix.os }}
steps:
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v4
with:
# we don't know what commit the last tag was it's safer to get entire repo so previousStableVersion resolves
fetch-depth: 0
- name: Set up python 3
- uses: actions/setup-python@v3
+ uses: actions/setup-python@v4
with:
python-version: '3.x'
architecture: 'x64'
@@ -39,7 +39,7 @@ jobs:
- run: pip install -r python/requirements.txt
- name: Set up JDK ${{ matrix.jdk }}
- uses: actions/setup-java@v2
+ uses: actions/setup-java@v3
with:
java-version: ${{ matrix.jdk }}
distribution: 'adopt'
@@ -55,19 +55,19 @@ jobs:
name: BUILD ${{ github.sha }}
steps:
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v4
with:
# we don't know what commit the last tag was it's safer to get entire repo so previousStableVersion resolves
fetch-depth: 0
- - name: Set up python 2
- uses: actions/setup-python@v2
+ - name: Set up python 3
+ uses: actions/setup-python@v4
with:
- python-version: '2.x'
+ python-version: '3.x'
architecture: 'x64'
- name: Set up JDK 17
- uses: actions/setup-java@v2
+ uses: actions/setup-java@v3
with:
java-version: 17
distribution: 'adopt'
@@ -77,7 +77,7 @@ jobs:
run: ant artifact
- name: ziping artifact
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v4
with:
name: play-${{ github.sha }}
if-no-files-found: error
diff --git a/documentation/manual/home.textile b/documentation/manual/home.textile
index 5c2be8b276..3ed0415926 100644
--- a/documentation/manual/home.textile
+++ b/documentation/manual/home.textile
@@ -189,6 +189,7 @@ h2. Version notes
New versions of Play include certain changes. Check older release notes for:
# "About Play releases":releases/releases
+# "Play 1.8.0":releases/release1.8.x/releasenotes-1.8.0
# "Play 1.7.1":releases/release1.7.x/releasenotes-1.7.1
# "Play 1.7.0":releases/release1.7.x/releasenotes-1.7.0
# "Play 1.6.0":releases/release1.6.x/releasenotes-1.6.0
diff --git a/documentation/manual/releases/release1.8.x/releasenotes-1.8.0.textile b/documentation/manual/releases/release1.8.x/releasenotes-1.8.0.textile
new file mode 100644
index 0000000000..527637736f
--- /dev/null
+++ b/documentation/manual/releases/release1.8.x/releasenotes-1.8.0.textile
@@ -0,0 +1,35 @@
+h1. Play 1.8.0 -- Release notes
+
+Play 1.8.0 has been released of the master branch.
+
+The changes in this release are listed in [1.8.0 on github](https://github.com/playframework/play1/issues?q=milestone%3A1.8.0+) including 22 resolved tickets.
+
+
+h2. What's new in Play 1.8.0
+
+* [#1428](https://github.com/playframework/play1/issues/1428): add support for java 18, 19.
+
+h2. What's fixed in Play 1.8.0
+
+* [#1407](https://github.com/playframework/play1/issues/1407): Cleanup code
+* [#1417](https://github.com/playframework/play1/issues/1417): Updated dependencies as of 20220618
+* [#1425](https://github.com/playframework/play1/issues/1425): Updated dependencies
+* [#1430](https://github.com/playframework/play1/issues/1430): NullPointer in JPABase.cascadeOrphans() caused by unused lines
+* [#1431](https://github.com/playframework/play1/issues/1431): Bugfix/1430 do not get unused value
+* [#1432](https://github.com/playframework/play1/issues/1432): Better compatibility with Hibernate Envers
+* [#1433](https://github.com/playframework/play1/issues/1433): about play 1.7.1 log problem
+* [#1437](https://github.com/playframework/play1/issues/1437): "play auto-test" can return a exit code zero when the tests don't run
+* [#1435](https://github.com/playframework/play1/issues/1435): #1437: play auto-test can return an exit code of zero when the teĆ
+* [#1438](https://github.com/playframework/play1/issues/1438): Upgrade Commons Lang
+* [#1440](https://github.com/playframework/play1/issues/1440): Fix warnings with generics
+* [#1441](https://github.com/playframework/play1/issues/1441): Dependency update 20230106
+* [#1444](https://github.com/playframework/play1/issues/1444): Fix missing HTTPMessage.getHeader()
+* [#1446](https://github.com/playframework/play1/issues/1446): Removed support for python 2.x in github action
+* [#1447](https://github.com/playframework/play1/issues/1447): [#1146] test(python): use python 3 for build instead of deprecated python2
+* [#1448](https://github.com/playframework/play1/issues/1448): Updated 3rd party dependencies
+* [#1459](https://github.com/playframework/play1/issues/1459): Updated 3rd party dependencies
+* [#1460](https://github.com/playframework/play1/issues/1460): Removed Python imp dependency
+* [#1465](https://github.com/playframework/play1/issues/1465): #1457 python imp module
+* [#1466](https://github.com/playframework/play1/issues/1466): Python AttributeError: module 'time' has no attribute 'clock'
+* [#1467](https://github.com/playframework/play1/issues/1467): #1466 The clock function was removed from time module in Python 3.8
+* [#1469](https://github.com/playframework/play1/issues/1469): feat(YamlParser): add SafeConstructor to enforce security
diff --git a/documentation/manual/releases/releases.textile b/documentation/manual/releases/releases.textile
index ea327f932a..90d795b38f 100644
--- a/documentation/manual/releases/releases.textile
+++ b/documentation/manual/releases/releases.textile
@@ -2,6 +2,10 @@ h1. About Play releases
You can download Play releases "here":https://www.playframework.com/download. Each release has a Migration Guide that explains how to upgrade from the previous release.
+h2. Play 1.8.x
+
+# "Play 1.8.0":release1.8.x/releasenotes-1.8.0
+
h2. Play 1.7.x
# "Play 1.7.1":release1.7.x/releasenotes-1.7.1
@@ -52,4 +56,4 @@ h2. Play 1.0.x
# "Play 1.0.3":release1.0.x/releasenotes-1.0.3
# "Play 1.0.2":release1.0.x/releasenotes-1.0.2
-# "Play 1.0.1":release1.0.x/releasenotes-1.0.1
\ No newline at end of file
+# "Play 1.0.1":release1.0.x/releasenotes-1.0.1
diff --git a/framework/dependencies.yml b/framework/dependencies.yml
index 5838900b0a..3237fe47f9 100644
--- a/framework/dependencies.yml
+++ b/framework/dependencies.yml
@@ -9,25 +9,25 @@ transitiveDependencies: false
require: &allDependencies
- antlr 2.7.7
- com.mchange -> c3p0 0.9.5.5
- - com.zaxxer -> HikariCP 5.0.1
- - org.ow2.asm -> asm 9.5
- - org.ow2.asm -> asm-commons 9.5
- - org.ow2.asm -> asm-util 9.5
- - org.ow2.asm -> asm-tree 9.5
- - org.ow2.asm -> asm-analysis 9.5
+ - com.zaxxer -> HikariCP 5.1.0
+ - org.ow2.asm -> asm 9.6
+ - org.ow2.asm -> asm-commons 9.6
+ - org.ow2.asm -> asm-util 9.6
+ - org.ow2.asm -> asm-tree 9.6
+ - org.ow2.asm -> asm-analysis 9.6
- cglib -> cglib 3.3.0
- com.google.code.gson -> gson 2.10.1
- com.jamonapi -> jamon 2.82
- com.ning -> async-http-client 1.9.40
- commons-beanutils 1.9.4
- - commons-codec 1.15
- - org.apache.commons -> commons-email 1.5
+ - commons-codec 1.16.1
+ - org.apache.commons -> commons-email 1.6.0
- commons-fileupload 1.5
- - commons-io 2.11.0
+ - commons-io 2.15.1
- com.google.code.maven-play-plugin.org.apache.commons -> commons-javaflow 1590792
- - org.apache.commons -> commons-lang3 3.12.0
- - org.apache.commons -> commons-text 1.10.0
- - commons-logging 1.2
+ - org.apache.commons -> commons-lang3 3.14.0
+ - org.apache.commons -> commons-text 1.11.0
+ - commons-logging 1.3.0
- org.dom4j -> dom4j 2.1.4
- com.h2database -> h2 1.4.200
- javax.activation -> javax.activation-api 1.2.0
@@ -35,46 +35,46 @@ require: &allDependencies
- javax.inject 1.0
- javax.validation -> validation-api 1.1.0.Final
- jaxen 2.0.0
- - joda-time 2.12.5
+ - joda-time 2.12.7
- org.hamcrest -> hamcrest-all 1.3
- junit 4.13.2
- jregex 1.2_01
- - log4j-api 2.20.0
- - log4j-core 2.20.0
+ - org.apache.logging.log4j -> log4j-api 2.23.0
+ - org.apache.logging.log4j -> log4j-core 2.23.0
- net.sf.ehcache -> ehcache 2.10.9.2
- net.sf.ezmorph -> ezmorph 1.0.6
- net.sf.jsr107cache -> jsr107cache 1.1
- net.sf.oval -> oval 1.90
- - com.mysql -> mysql-connector-j 8.0.33
+ - com.mysql -> mysql-connector-j 8.3.0
- oauth.signpost -> signpost-core 1.2.1.2
- org.apache.geronimo.specs -> geronimo-servlet_2.5_spec 1.2
- - org.apache.ivy -> ivy 2.5.1
- - org.bouncycastle -> bcprov-jdk18on 1.73
- - org.bouncycastle -> bcpkix-jdk18on 1.73
- - org.codehaus.groovy -> groovy 3.0.17
- - org.codehaus.groovy -> groovy-xml 3.0.17
+ - org.apache.ivy -> ivy 2.5.2
+ - org.bouncycastle -> bcprov-jdk18on 1.77
+ - org.bouncycastle -> bcpkix-jdk18on 1.77
+ - org.codehaus.groovy -> groovy 3.0.20
+ - org.codehaus.groovy -> groovy-xml 3.0.20
- org.eclipse.jdt -> org.eclipse.jdt.core 3.33.0
- org.eclipse.jdt -> ecj 3.33.0
- org.hibernate -> hibernate-core 5.6.5.Final.patched
- - net.bytebuddy -> byte-buddy 1.14.4
+ - net.bytebuddy -> byte-buddy 1.14.12
- javax.persistence -> javax.persistence-api 2.2
- org.hibernate.common -> hibernate-commons-annotations 5.1.2.Final
- org.hibernate -> hibernate-validator 5.4.3.Final
- - io.smallrye -> jandex 3.1.1
- - org.jboss.logging -> jboss-logging 3.5.0.Final
+ - io.smallrye -> jandex 3.1.6
+ - org.jboss.logging -> jboss-logging 3.5.3.Final
- org.jboss.spec.javax.transaction -> jboss-transaction-api_1.2_spec 1.1.1.Final
- javax.xml.bind -> jaxb-api 2.3.1
- - org.glassfish.jaxb -> jaxb-runtime 2.3.8
- - com.fasterxml -> classmate 1.5.1
+ - org.glassfish.jaxb -> jaxb-runtime 2.3.9
+ - com.fasterxml -> classmate 1.7.0
- org.hibernate -> hibernate-c3p0 5.6.15.Final
- org.hibernate -> hibernate-ehcache 5.6.15.Final
- com.mchange -> mchange-commons-java 0.2.20
- - org.javassist -> javassist 3.29.2-GA
+ - org.javassist -> javassist 3.30.2-GA
- io.netty -> netty 3.10.6.Final
- - org.postgresql -> postgresql 42.6.0
- - org.slf4j -> slf4j-api 2.0.7
- - org.apache.logging.log4j -> log4j-slf4j2-impl 2.20.0
- - org.yaml -> snakeyaml 2.0
+ - org.postgresql -> postgresql 42.7.2
+ - org.slf4j -> slf4j-api 2.0.12
+ - org.apache.logging.log4j -> log4j-slf4j2-impl 2.23.0
+ - org.yaml -> snakeyaml 2.2
- net.spy -> spymemcached 2.12.3
- com.thoughtworks.xstream -> xstream 1.4.20
- xmlpull 1.1.3.4d_b4_min
diff --git a/framework/lib/HikariCP-5.0.1.jar b/framework/lib/HikariCP-5.0.1.jar
deleted file mode 100644
index 9d7eafb698..0000000000
Binary files a/framework/lib/HikariCP-5.0.1.jar and /dev/null differ
diff --git a/framework/lib/HikariCP-5.1.0.jar b/framework/lib/HikariCP-5.1.0.jar
new file mode 100644
index 0000000000..0aa1c9fb12
Binary files /dev/null and b/framework/lib/HikariCP-5.1.0.jar differ
diff --git a/framework/lib/asm-9.5.jar b/framework/lib/asm-9.5.jar
deleted file mode 100644
index f5701dca4f..0000000000
Binary files a/framework/lib/asm-9.5.jar and /dev/null differ
diff --git a/framework/lib/asm-9.6.jar b/framework/lib/asm-9.6.jar
new file mode 100644
index 0000000000..cc1c2cd8e4
Binary files /dev/null and b/framework/lib/asm-9.6.jar differ
diff --git a/framework/lib/asm-analysis-9.5.jar b/framework/lib/asm-analysis-9.5.jar
deleted file mode 100644
index 3385bff988..0000000000
Binary files a/framework/lib/asm-analysis-9.5.jar and /dev/null differ
diff --git a/framework/lib/asm-analysis-9.6.jar b/framework/lib/asm-analysis-9.6.jar
new file mode 100644
index 0000000000..f4e8691b97
Binary files /dev/null and b/framework/lib/asm-analysis-9.6.jar differ
diff --git a/framework/lib/asm-commons-9.5.jar b/framework/lib/asm-commons-9.6.jar
similarity index 71%
rename from framework/lib/asm-commons-9.5.jar
rename to framework/lib/asm-commons-9.6.jar
index 21898dfd9a..75f3bad86a 100644
Binary files a/framework/lib/asm-commons-9.5.jar and b/framework/lib/asm-commons-9.6.jar differ
diff --git a/framework/lib/asm-tree-9.5.jar b/framework/lib/asm-tree-9.6.jar
similarity index 55%
rename from framework/lib/asm-tree-9.5.jar
rename to framework/lib/asm-tree-9.6.jar
index 5c6da6577a..9fe5275876 100644
Binary files a/framework/lib/asm-tree-9.5.jar and b/framework/lib/asm-tree-9.6.jar differ
diff --git a/framework/lib/asm-util-9.5.jar b/framework/lib/asm-util-9.6.jar
similarity index 68%
rename from framework/lib/asm-util-9.5.jar
rename to framework/lib/asm-util-9.6.jar
index f059066cd1..cc109b03d0 100644
Binary files a/framework/lib/asm-util-9.5.jar and b/framework/lib/asm-util-9.6.jar differ
diff --git a/framework/lib/bcpkix-jdk18on-1.73.jar b/framework/lib/bcpkix-jdk18on-1.77.jar
similarity index 64%
rename from framework/lib/bcpkix-jdk18on-1.73.jar
rename to framework/lib/bcpkix-jdk18on-1.77.jar
index 188feccc31..e8b6021a2a 100644
Binary files a/framework/lib/bcpkix-jdk18on-1.73.jar and b/framework/lib/bcpkix-jdk18on-1.77.jar differ
diff --git a/framework/lib/bcprov-jdk18on-1.73.jar b/framework/lib/bcprov-jdk18on-1.77.jar
similarity index 56%
rename from framework/lib/bcprov-jdk18on-1.73.jar
rename to framework/lib/bcprov-jdk18on-1.77.jar
index 367d50d143..651d2fba5e 100644
Binary files a/framework/lib/bcprov-jdk18on-1.73.jar and b/framework/lib/bcprov-jdk18on-1.77.jar differ
diff --git a/framework/lib/byte-buddy-1.14.4.jar b/framework/lib/byte-buddy-1.14.12.jar
similarity index 68%
rename from framework/lib/byte-buddy-1.14.4.jar
rename to framework/lib/byte-buddy-1.14.12.jar
index 43baf3bf58..f9c0f47cd1 100644
Binary files a/framework/lib/byte-buddy-1.14.4.jar and b/framework/lib/byte-buddy-1.14.12.jar differ
diff --git a/framework/lib/classmate-1.5.1.jar b/framework/lib/classmate-1.5.1.jar
deleted file mode 100644
index 819f5eaf09..0000000000
Binary files a/framework/lib/classmate-1.5.1.jar and /dev/null differ
diff --git a/framework/lib/classmate-1.7.0.jar b/framework/lib/classmate-1.7.0.jar
new file mode 100644
index 0000000000..984a779753
Binary files /dev/null and b/framework/lib/classmate-1.7.0.jar differ
diff --git a/framework/lib/commons-codec-1.15.jar b/framework/lib/commons-codec-1.15.jar
deleted file mode 100644
index f14985ac92..0000000000
Binary files a/framework/lib/commons-codec-1.15.jar and /dev/null differ
diff --git a/framework/lib/commons-codec-1.16.1.jar b/framework/lib/commons-codec-1.16.1.jar
new file mode 100644
index 0000000000..f896649735
Binary files /dev/null and b/framework/lib/commons-codec-1.16.1.jar differ
diff --git a/framework/lib/commons-email-1.5.jar b/framework/lib/commons-email-1.5.jar
deleted file mode 100644
index 291bd194f4..0000000000
Binary files a/framework/lib/commons-email-1.5.jar and /dev/null differ
diff --git a/framework/lib/commons-email-1.6.0.jar b/framework/lib/commons-email-1.6.0.jar
new file mode 100644
index 0000000000..c520d58430
Binary files /dev/null and b/framework/lib/commons-email-1.6.0.jar differ
diff --git a/framework/lib/commons-io-2.11.0.jar b/framework/lib/commons-io-2.11.0.jar
deleted file mode 100644
index be507d94fd..0000000000
Binary files a/framework/lib/commons-io-2.11.0.jar and /dev/null differ
diff --git a/framework/lib/commons-io-2.15.1.jar b/framework/lib/commons-io-2.15.1.jar
new file mode 100644
index 0000000000..d53be1f140
Binary files /dev/null and b/framework/lib/commons-io-2.15.1.jar differ
diff --git a/framework/lib/commons-lang3-3.12.0.jar b/framework/lib/commons-lang3-3.12.0.jar
deleted file mode 100644
index 4d434a2a45..0000000000
Binary files a/framework/lib/commons-lang3-3.12.0.jar and /dev/null differ
diff --git a/framework/lib/commons-lang3-3.14.0.jar b/framework/lib/commons-lang3-3.14.0.jar
new file mode 100644
index 0000000000..da9302ff29
Binary files /dev/null and b/framework/lib/commons-lang3-3.14.0.jar differ
diff --git a/framework/lib/commons-logging-1.2.jar b/framework/lib/commons-logging-1.2.jar
deleted file mode 100644
index 93a3b9f6db..0000000000
Binary files a/framework/lib/commons-logging-1.2.jar and /dev/null differ
diff --git a/framework/lib/commons-logging-1.3.0.jar b/framework/lib/commons-logging-1.3.0.jar
new file mode 100644
index 0000000000..127dd00d30
Binary files /dev/null and b/framework/lib/commons-logging-1.3.0.jar differ
diff --git a/framework/lib/commons-text-1.10.0.jar b/framework/lib/commons-text-1.10.0.jar
deleted file mode 100644
index beada0274f..0000000000
Binary files a/framework/lib/commons-text-1.10.0.jar and /dev/null differ
diff --git a/framework/lib/commons-text-1.11.0.jar b/framework/lib/commons-text-1.11.0.jar
new file mode 100644
index 0000000000..78154978a0
Binary files /dev/null and b/framework/lib/commons-text-1.11.0.jar differ
diff --git a/framework/lib/groovy-3.0.17.jar b/framework/lib/groovy-3.0.20.jar
similarity index 85%
rename from framework/lib/groovy-3.0.17.jar
rename to framework/lib/groovy-3.0.20.jar
index 13f0946ed8..d3b704edcf 100644
Binary files a/framework/lib/groovy-3.0.17.jar and b/framework/lib/groovy-3.0.20.jar differ
diff --git a/framework/lib/groovy-xml-3.0.17.jar b/framework/lib/groovy-xml-3.0.20.jar
similarity index 91%
rename from framework/lib/groovy-xml-3.0.17.jar
rename to framework/lib/groovy-xml-3.0.20.jar
index 62ad5e3714..5e1e17728e 100644
Binary files a/framework/lib/groovy-xml-3.0.17.jar and b/framework/lib/groovy-xml-3.0.20.jar differ
diff --git a/framework/lib/ivy-2.5.1.jar b/framework/lib/ivy-2.5.2.jar
similarity index 84%
rename from framework/lib/ivy-2.5.1.jar
rename to framework/lib/ivy-2.5.2.jar
index 46374bc68a..7d2648a898 100644
Binary files a/framework/lib/ivy-2.5.1.jar and b/framework/lib/ivy-2.5.2.jar differ
diff --git a/framework/lib/jandex-3.1.1.jar b/framework/lib/jandex-3.1.1.jar
deleted file mode 100644
index c1e5c375ad..0000000000
Binary files a/framework/lib/jandex-3.1.1.jar and /dev/null differ
diff --git a/framework/lib/jandex-3.1.6.jar b/framework/lib/jandex-3.1.6.jar
new file mode 100644
index 0000000000..bd64a7239d
Binary files /dev/null and b/framework/lib/jandex-3.1.6.jar differ
diff --git a/framework/lib/javassist-3.29.2-GA.jar b/framework/lib/javassist-3.30.2-GA.jar
similarity index 81%
rename from framework/lib/javassist-3.29.2-GA.jar
rename to framework/lib/javassist-3.30.2-GA.jar
index 68fc301018..30f90f0423 100644
Binary files a/framework/lib/javassist-3.29.2-GA.jar and b/framework/lib/javassist-3.30.2-GA.jar differ
diff --git a/framework/lib/jaxb-runtime-2.3.8.jar b/framework/lib/jaxb-runtime-2.3.9.jar
similarity index 90%
rename from framework/lib/jaxb-runtime-2.3.8.jar
rename to framework/lib/jaxb-runtime-2.3.9.jar
index 7b0e4ac014..c64fe184fc 100644
Binary files a/framework/lib/jaxb-runtime-2.3.8.jar and b/framework/lib/jaxb-runtime-2.3.9.jar differ
diff --git a/framework/lib/jboss-logging-3.5.0.Final.jar b/framework/lib/jboss-logging-3.5.0.Final.jar
deleted file mode 100644
index d39dfcfa58..0000000000
Binary files a/framework/lib/jboss-logging-3.5.0.Final.jar and /dev/null differ
diff --git a/framework/lib/jboss-logging-3.5.3.Final.jar b/framework/lib/jboss-logging-3.5.3.Final.jar
new file mode 100644
index 0000000000..a922e47523
Binary files /dev/null and b/framework/lib/jboss-logging-3.5.3.Final.jar differ
diff --git a/framework/lib/joda-time-2.12.5.jar b/framework/lib/joda-time-2.12.7.jar
similarity index 79%
rename from framework/lib/joda-time-2.12.5.jar
rename to framework/lib/joda-time-2.12.7.jar
index 3aaca7dd61..7994777eda 100644
Binary files a/framework/lib/joda-time-2.12.5.jar and b/framework/lib/joda-time-2.12.7.jar differ
diff --git a/framework/lib/log4j-api-2.20.0.jar b/framework/lib/log4j-api-2.20.0.jar
deleted file mode 100644
index 29d1b52a2c..0000000000
Binary files a/framework/lib/log4j-api-2.20.0.jar and /dev/null differ
diff --git a/framework/lib/log4j-api-2.23.0.jar b/framework/lib/log4j-api-2.23.0.jar
new file mode 100644
index 0000000000..dd00e8fb12
Binary files /dev/null and b/framework/lib/log4j-api-2.23.0.jar differ
diff --git a/framework/lib/log4j-core-2.20.0.jar b/framework/lib/log4j-core-2.20.0.jar
deleted file mode 100644
index 54dafcd0ca..0000000000
Binary files a/framework/lib/log4j-core-2.20.0.jar and /dev/null differ
diff --git a/framework/lib/log4j-core-2.23.0.jar b/framework/lib/log4j-core-2.23.0.jar
new file mode 100644
index 0000000000..cba2887db6
Binary files /dev/null and b/framework/lib/log4j-core-2.23.0.jar differ
diff --git a/framework/lib/log4j-slf4j2-impl-2.20.0.jar b/framework/lib/log4j-slf4j2-impl-2.20.0.jar
deleted file mode 100644
index 075498f422..0000000000
Binary files a/framework/lib/log4j-slf4j2-impl-2.20.0.jar and /dev/null differ
diff --git a/framework/lib/log4j-slf4j2-impl-2.23.0.jar b/framework/lib/log4j-slf4j2-impl-2.23.0.jar
new file mode 100644
index 0000000000..cae4d1e121
Binary files /dev/null and b/framework/lib/log4j-slf4j2-impl-2.23.0.jar differ
diff --git a/framework/lib/mysql-connector-j-8.0.33.jar b/framework/lib/mysql-connector-j-8.0.33.jar
deleted file mode 100644
index 3f741f59f3..0000000000
Binary files a/framework/lib/mysql-connector-j-8.0.33.jar and /dev/null differ
diff --git a/framework/lib/mysql-connector-j-8.3.0.jar b/framework/lib/mysql-connector-j-8.3.0.jar
new file mode 100644
index 0000000000..5c720abe68
Binary files /dev/null and b/framework/lib/mysql-connector-j-8.3.0.jar differ
diff --git a/framework/lib/postgresql-42.6.0.jar b/framework/lib/postgresql-42.6.0.jar
deleted file mode 100644
index 02f902afc5..0000000000
Binary files a/framework/lib/postgresql-42.6.0.jar and /dev/null differ
diff --git a/framework/lib/postgresql-42.7.2.jar b/framework/lib/postgresql-42.7.2.jar
new file mode 100644
index 0000000000..729776b004
Binary files /dev/null and b/framework/lib/postgresql-42.7.2.jar differ
diff --git a/framework/lib/slf4j-api-2.0.12.jar b/framework/lib/slf4j-api-2.0.12.jar
new file mode 100644
index 0000000000..bfa1de399d
Binary files /dev/null and b/framework/lib/slf4j-api-2.0.12.jar differ
diff --git a/framework/lib/slf4j-api-2.0.7.jar b/framework/lib/slf4j-api-2.0.7.jar
deleted file mode 100644
index be5447c4db..0000000000
Binary files a/framework/lib/slf4j-api-2.0.7.jar and /dev/null differ
diff --git a/framework/lib/snakeyaml-2.0.jar b/framework/lib/snakeyaml-2.2.jar
similarity index 57%
rename from framework/lib/snakeyaml-2.0.jar
rename to framework/lib/snakeyaml-2.2.jar
index 469b0430e4..275dd5700a 100644
Binary files a/framework/lib/snakeyaml-2.0.jar and b/framework/lib/snakeyaml-2.2.jar differ
diff --git a/framework/pym/play/cmdloader.py b/framework/pym/play/cmdloader.py
index 459f6850fc..862bd1e5f6 100644
--- a/framework/pym/play/cmdloader.py
+++ b/framework/pym/play/cmdloader.py
@@ -1,5 +1,6 @@
from __future__ import print_function
-import imp
+import importlib.util
+import importlib.machinery
import os
import warnings
import traceback
@@ -22,8 +23,9 @@ def load_core(self):
for filename in os.listdir(self.path):
if filename != "__init__.py" and filename.endswith(".py"):
try:
- name = filename.replace(".py", "")
- mod = load_python_module(name, self.path)
+ module_name = filename.replace(".py", "")
+ module_path = os.path.join(self.path, filename)
+ mod = load_python_module(module_name, module_path)
self._load_cmd_from(mod)
except Exception as e:
print (e)
@@ -35,7 +37,8 @@ def load_play_module(self, modname):
if os.path.exists(commands):
try:
leafname = os.path.basename(modname).split('.')[0]
- mod = imp.load_source(leafname, os.path.join(modname, "commands.py"))
+ # print(f"Loading commands for module \"{modname}\"")
+ mod = load_source(leafname, os.path.join(modname, "commands.py"))
self._load_cmd_from(mod)
except Exception as e:
print('~')
@@ -55,12 +58,26 @@ def _load_cmd_from(self, mod):
if 'MODULE' in dir(mod):
self.modules[mod.MODULE] = mod
+
def load_python_module(name, location):
- mod_desc = imp.find_module(name, [location])
- mod_file = mod_desc[0]
- try:
- return imp.load_module(name, mod_desc[0], mod_desc[1], mod_desc[2])
- finally:
- if mod_file != None and not mod_file.closed:
- mod_file.close()
+# print(f"Loading module \"{name}\" at location \"{location}\"")
+ spec = importlib.util.spec_from_file_location(name, location)
+ if spec is None:
+ raise ImportError(f"Could not find module {name} at {location}")
+
+ mod = importlib.util.module_from_spec(spec)
+ spec.loader.exec_module(mod)
+
+ return mod
+
+# Obtained from https://docs.python.org/dev/whatsnew/3.12.html#imp
+def load_source(modname, filename):
+ loader = importlib.machinery.SourceFileLoader(modname, filename)
+ spec = importlib.util.spec_from_file_location(modname, filename, loader=loader)
+ module = importlib.util.module_from_spec(spec)
+ # The module is always executed and not cached in sys.modules.
+ # Uncomment the following line to cache the module.
+ # sys.modules[module.__name__] = module
+ loader.exec_module(module)
+ return module
diff --git a/framework/pym/play/commands/autotest.py b/framework/pym/play/commands/autotest.py
index 22702c8e36..403a7a1b5f 100644
--- a/framework/pym/play/commands/autotest.py
+++ b/framework/pym/play/commands/autotest.py
@@ -148,12 +148,20 @@ def autotest(app, args):
opener.open('%s://localhost:%s/@kill' % (protocol, http_port))
except Exception as e:
pass
-
+
+ testCompleted = False
if os.path.exists(os.path.join(app.path, 'test-result/result.passed')):
+ testCompleted = True
print("~ All tests passed")
print("~")
testspassed = True
if os.path.exists(os.path.join(app.path, 'test-result/result.failed')):
+ testCompleted = True
print("~ Some tests have failed. See file://%s for results" % test_result)
print("~")
sys.exit(1)
+
+ if not testCompleted:
+ print("~ Tests did not successfully complete.")
+ print("~")
+ sys.exit(-1)
diff --git a/framework/pym/play/commands/modulesrepo.py b/framework/pym/play/commands/modulesrepo.py
index d76681cc42..b3b868c4eb 100644
--- a/framework/pym/play/commands/modulesrepo.py
+++ b/framework/pym/play/commands/modulesrepo.py
@@ -12,7 +12,7 @@
import urllib.request, urllib.error, urllib.parse
import shutil
import string
-import imp
+import importlib.util
import time
import urllib.request, urllib.parse, urllib.error
import yaml
@@ -40,8 +40,16 @@
def load_module(name):
base = os.path.normpath(os.path.dirname(os.path.realpath(sys.argv[0])))
- mod_desc = imp.find_module(name, [os.path.join(base, 'framework/pym')])
- return imp.load_module(name, mod_desc[0], mod_desc[1], mod_desc[2])
+ module_path = os.path.join(base, 'framework/pym', name, '__init__.py')
+
+ spec = importlib.util.spec_from_file_location(name, module_path)
+ if spec is None:
+ raise ImportError(f"Could not find module \"{name}\" at \"{module_path}\"")
+
+ mod = importlib.util.module_from_spec(spec)
+ spec.loader.exec_module(mod)
+
+ return mod
json = load_module('simplejson')
@@ -93,7 +101,7 @@ def __init__(self, width=55):
def retrieve(self, url, destination, callback=None):
self.size = 0
- time.clock()
+ time.perf_counter()
try:
headers={'User-Agent':DEFAULT_USER_AGENT,
'Accept': 'application/json'
@@ -117,7 +125,7 @@ def retrieve(self, url, destination, callback=None):
return self.size
def chunk_read(self, response, destination, chunk_size=8192, report_hook=None):
- total_size = response.info().getheader('Content-Length').strip()
+ total_size = response.headers['Content-Length'].strip()
total_size = int(total_size)
bytes_so_far = 0
file = open(destination,"wb")
@@ -154,7 +162,7 @@ def progress(self, bytes_so_far, blocksize, filesize):
done = 100
bar = self.bar(bytes_so_far, filesize, done)
if not self.cycles % 3 and bits != filesize:
- now = time.clock()
+ now = time.perf_counter()
elapsed = now-self.before
if elapsed:
speed = self.kibi(blocksize * 3 // elapsed)
@@ -320,7 +328,7 @@ def build(app, args, env):
if os.path.exists(deps_file):
f = open(deps_file)
try:
- deps = yaml.load(f.read())
+ deps = yaml.safe_load(f.read())
if 'self' in deps:
splitted = deps["self"].split(" -> ")
if len(splitted) == 2:
@@ -346,7 +354,7 @@ def build(app, args, env):
if os.path.exists(deps_file):
f = open(deps_file)
- deps = yaml.load(f.read())
+ deps = yaml.safe_load(f.read())
if 'self' in deps:
splitted = deps["self"].split(" -> ")
f.close()
diff --git a/framework/src/play/classloading/ApplicationClassloader.java b/framework/src/play/classloading/ApplicationClassloader.java
index 4eac8b8dea..da1ac216ca 100644
--- a/framework/src/play/classloading/ApplicationClassloader.java
+++ b/framework/src/play/classloading/ApplicationClassloader.java
@@ -102,7 +102,7 @@ protected Class> loadClass(String name, boolean resolve) throws ClassNotFoundE
public Class> loadApplicationClass(String name) {
if (ApplicationClass.isClass(name)) {
- Class maybeAlreadyLoaded = findLoadedClass(name);
+ Class> maybeAlreadyLoaded = findLoadedClass(name);
if (maybeAlreadyLoaded != null) {
return maybeAlreadyLoaded;
}
@@ -401,9 +401,9 @@ private int computePathHash() {
*
* @return The list of well defined Class
*/
- public List getAllClasses() {
+ public List> getAllClasses() {
if (allClasses == null) {
- List result = new ArrayList<>();
+ List> result = new ArrayList<>();
if (Play.usePrecompiled) {
@@ -412,7 +412,7 @@ public List getAllClasses() {
Play.classes.clear();
for (ApplicationClass applicationClass : applicationClasses) {
Play.classes.add(applicationClass);
- Class clazz = loadApplicationClass(applicationClass.name);
+ Class> clazz = loadApplicationClass(applicationClass.name);
applicationClass.javaClass = clazz;
applicationClass.compiled = true;
result.add(clazz);
@@ -439,7 +439,7 @@ public List getAllClasses() {
}
for (ApplicationClass applicationClass : Play.classes.all()) {
- Class clazz = loadApplicationClass(applicationClass.name);
+ Class> clazz = loadApplicationClass(applicationClass.name);
if (clazz != null) {
result.add(clazz);
}
@@ -462,7 +462,7 @@ public List getAllClasses() {
return allClasses;
}
- private List allClasses;
+ private List> allClasses;
private Map allClassesByNormalizedName;
/**
@@ -497,7 +497,7 @@ public List getAssignableClasses(Class clazz) {
* The class name.
* @return a class
*/
- public Class getClassIgnoreCase(String name) {
+ public Class> getClassIgnoreCase(String name) {
getAllClasses();
String nameLowerCased = name.toLowerCase();
ApplicationClass c = allClassesByNormalizedName.get(nameLowerCased);
@@ -517,17 +517,17 @@ public Class getClassIgnoreCase(String name) {
* The annotation class.
* @return A list of class
*/
- public List getAnnotatedClasses(Class extends Annotation> clazz) {
+ public List> getAnnotatedClasses(Class extends Annotation> clazz) {
getAllClasses();
- List results = new ArrayList<>();
+ List> results = new ArrayList<>();
for (ApplicationClass c : Play.classes.getAnnotatedClasses(clazz)) {
results.add(c.javaClass);
}
return results;
}
- public List getAnnotatedClasses(Class[] clazz) {
- List results = new ArrayList<>();
+ public List> getAnnotatedClasses(Class extends Annotation>[] clazz) {
+ List> results = new ArrayList<>();
for (Class extends Annotation> cl : clazz) {
results.addAll(getAnnotatedClasses(cl));
}
diff --git a/framework/src/play/data/binding/Binder.java b/framework/src/play/data/binding/Binder.java
index 4c999d571c..3a8b775a19 100644
--- a/framework/src/play/data/binding/Binder.java
+++ b/framework/src/play/data/binding/Binder.java
@@ -435,11 +435,11 @@ private static Object bindEnum(Class> clazz, ParamNode paramNode) {
}
private static Object bindMap(Type type, ParamNode paramNode, BindingAnnotations bindingAnnotations) {
- Class keyClass = String.class;
- Class valueClass = String.class;
+ Class> keyClass = String.class;
+ Class> valueClass = String.class;
if (type instanceof ParameterizedType) {
- keyClass = (Class) ((ParameterizedType) type).getActualTypeArguments()[0];
- valueClass = (Class) ((ParameterizedType) type).getActualTypeArguments()[1];
+ keyClass = (Class>) ((ParameterizedType) type).getActualTypeArguments()[0];
+ valueClass = (Class>) ((ParameterizedType) type).getActualTypeArguments()[1];
}
Map