Ivar Grimstad | 12e6de9 | 2020-06-29 19:24:53 +0200 | [diff] [blame] | 1 | # Eclipse GlassFish |
Vinay Vishal | 5717147 | 2018-09-18 20:22:00 +0530 | [diff] [blame] | 2 | |
Ivar Grimstad | 12e6de9 | 2020-06-29 19:24:53 +0200 | [diff] [blame] | 3 | ## About |
| 4 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 5 | [Eclipse GlassFish](https://projects.eclipse.org/projects/ee4j.glassfish) is a Jakarta EE compatible implementation |
| 6 | sponsored by the Eclipse Foundation. |
Vinay Vishal | 5717147 | 2018-09-18 20:22:00 +0530 | [diff] [blame] | 7 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 8 | ### Compatibility |
Vinay Vishal | 5717147 | 2018-09-18 20:22:00 +0530 | [diff] [blame] | 9 | |
David Matějček | 3501385 | 2021-11-28 19:19:06 +0100 | [diff] [blame] | 10 | * Eclipse GlassFish 7.0.0 is Jakarta EE 10 compatible, requires Java 11, supports Java 18 |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 11 | * Eclipse GlassFish 6.2.0 is Jakarta EE 9.1 compatible, requires Java 11, supports Java 17 |
| 12 | * Eclipse GlassFish 6.1.0 is Jakarta EE 9.1 compatible, requires Java 11 |
| 13 | * Eclipse GlassFish 6.0.0 is Jakarta EE 9 compatible, requires Java 8 |
| 14 | * Eclipse GlassFish 5.1.0 is Java EE 8 and Jakarta EE 8 compatible, requires Java 8 |
| 15 | |
| 16 | ### Distribution |
| 17 | |
| 18 | The Zip distributions can be found on following paths: |
| 19 | * appserver/distributions/glassfish/target/glassfish.zip (Full Profile) |
| 20 | * appserver/distributions/web/target/web.zip (Web Profile) |
| 21 | |
| 22 | ## Building |
| 23 | |
| 24 | ### Prerequisites |
Vinay Vishal | 5717147 | 2018-09-18 20:22:00 +0530 | [diff] [blame] | 25 | |
Christian Kaltepoth | 840c55f | 2021-05-22 13:35:02 +0200 | [diff] [blame] | 26 | * JDK11+ |
David Matějček | 9f43a95 | 2022-04-13 22:51:35 +0200 | [diff] [blame] | 27 | * Maven 3.6.0+ |
Vinay Vishal | 5717147 | 2018-09-18 20:22:00 +0530 | [diff] [blame] | 28 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 29 | ### Execution |
Steve Millidge | cc164da | 2018-11-13 08:18:45 +0000 | [diff] [blame] | 30 | |
David Matějček | da07c94 | 2022-02-16 13:59:11 +0100 | [diff] [blame] | 31 | :warning: Because GF7 is now in intensive development and depends on external snapshot dependencies, you have to build these dependencies first: `mvn clean install -f ./snapshots/pom.xml` |
| 32 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 33 | * `mvn clean install` - Full build including automatic QA and maven managed tests. Typical time: 5 minutes. |
| 34 | * `mvn clean install -Pfast` - Building all distribution artifacts, running just unit tests, QA and integration tests excluded. Typical time: 3 minutes. |
| 35 | * `mvn clean install -Pfastest` - Building all distribution artifacts, excluded all QA and testing. Typical time: 1.5 minutes. |
Vinay Vishal | 5717147 | 2018-09-18 20:22:00 +0530 | [diff] [blame] | 36 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 37 | You can use also some maven optimizations, ie. using `-T4C` to allow parallel build. |
Vinay Vishal | 5717147 | 2018-09-18 20:22:00 +0530 | [diff] [blame] | 38 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 39 | ### Special Profiles |
Vinay Vishal | 5717147 | 2018-09-18 20:22:00 +0530 | [diff] [blame] | 40 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 41 | * `staging` - In some development stages may happen that some dependencies are available just in OSSRH staging repository. |
| 42 | Then you have to use this profile, which is not enabled by default. |
| 43 | * `jacoco` - enables the [JaCoCo](https://www.eclemma.org/jacoco/) agent in tests, so you can import it's output to you editor, ie. Eclipse, and see the code coverage. |
| 44 | * `jacoco-merge` - merges all JaCoCo output files found in subdirectories and merges them into one. It is useful to see code which wasn't even touched by tests. |
Vinay Vishal | 5717147 | 2018-09-18 20:22:00 +0530 | [diff] [blame] | 45 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 46 | ### Special Scripts |
arjantijms | 79b293d | 2020-06-09 15:17:29 +0200 | [diff] [blame] | 47 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 48 | * `./updateVersion.sh 6.99.99.experimental` - useful for custom distributions, so you can avoid conflicts with version in master branch. |
David Matějček | cf41ba4 | 2022-03-03 22:55:21 +0100 | [diff] [blame] | 49 | * `./runtests.sh [testBlockName] [?glassfishVersion]` - useful to run [old additional tests](#old-additional-tests) locally |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 50 | * `./validateJars.sh` - uses the bnd command to check OSGI dependencies in all target directories |
arjantijms | 79b293d | 2020-06-09 15:17:29 +0200 | [diff] [blame] | 51 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 52 | ## Additional Testing |
arjantijms | 79b293d | 2020-06-09 15:17:29 +0200 | [diff] [blame] | 53 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 54 | After building the GlassFish distribution artifacts you can execute also additional tests managed by bash scripts. |
| 55 | They are quite old and have high technical debt, but at this moment they still provide useful service. |
Lukas Jungmann | ee91e33 | 2018-11-13 21:02:47 +0100 | [diff] [blame] | 56 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 57 | ### QuickLook |
Lukas Jungmann | ee91e33 | 2018-11-13 21:02:47 +0100 | [diff] [blame] | 58 | |
David Matějček | 3501385 | 2021-11-28 19:19:06 +0100 | [diff] [blame] | 59 | `mvn -f appserver/tests/quicklook/pom.xml test -Dglassfish.home=$(pwd)/appserver/distributions/glassfish/target/stage/glassfish7/glassfish` |
Lukas Jungmann | ee91e33 | 2018-11-13 21:02:47 +0100 | [diff] [blame] | 60 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 61 | * Usual time: 3 minutes |
| 62 | * see [QuickLook_Test_Instructions](https://github.com/eclipse-ee4j/glassfish/blob/master/appserver/tests/quicklook/QuickLook_Test_Instructions.html) |
arjantijms | 79b293d | 2020-06-09 15:17:29 +0200 | [diff] [blame] | 63 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 64 | ### Old Additional Tests |
arjantijms | 79b293d | 2020-06-09 15:17:29 +0200 | [diff] [blame] | 65 | |
David Matějček | da07c94 | 2022-02-16 13:59:11 +0100 | [diff] [blame] | 66 | :warning: if the script fails, sometimes it doesn't stop the domain and you have to do that manually. |
| 67 | |
David Matějček | cf41ba4 | 2022-03-03 22:55:21 +0100 | [diff] [blame] | 68 | * `./runtests.sh batch_all` - Usual time: 1 minute |
| 69 | * `./runtests.sh cdi_all` - Usual time: 6 minutes |
| 70 | * `./runtests.sh connector_group_1` - Usual time: 16 minutes |
| 71 | * `./runtests.sh connector_group_2` - Usual time: 3 minutes |
| 72 | * `./runtests.sh connector_group_3` - Usual time: 4 minutes |
| 73 | * `./runtests.sh connector_group_4` - Usual time: 16 minutes |
| 74 | * `./runtests.sh deployment_all` - Usual time: 8 minutes |
| 75 | * `./runtests.sh ejb_group_1` - Usual time: 10 minutes |
| 76 | * `./runtests.sh ejb_group_2` - Usual time: 7 minutes |
| 77 | * `./runtests.sh ejb_group_3` - Usual time: 18 minutes |
| 78 | * `./runtests.sh ejb_group_embedded` - Usual time: 4 minutes |
| 79 | * `./runtests.sh ejb_group_all` - Usual time: 4 minutes |
| 80 | * `./runtests.sh jdbc_all` - Usual time: 20 minutes |
| 81 | * `./runtests.sh naming_all` - Usual time: 2 minutes |
| 82 | * `./runtests.sh persistence_all` - Usual time: 3 minutes |
| 83 | * `./runtests.sh security_all` - Usual time: 8 minutes |
| 84 | * `./runtests.sh web_jsp` - Usual time: 8 minutes |
| 85 | * `./runtests.sh webservice_all` - Usual time: 10 minutes |
David Matějček | da07c94 | 2022-02-16 13:59:11 +0100 | [diff] [blame] | 86 | * `./gfbuild.sh archive_bundles && ./gftest.sh ejb_web_all` - Usual time: 4 minutes |
David Matějček | da07c94 | 2022-02-16 13:59:11 +0100 | [diff] [blame] | 87 | * `./gfbuild.sh archive_bundles && ./gftest.sh ql_gf_web_profile_all` - Usual time: 2 minutes |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 88 | * `./gfbuild.sh archive_bundles && ./gftest.sh ql_gf_full_profile_all` - Usual time: 4 minutes |
arjantijms | 79b293d | 2020-06-09 15:17:29 +0200 | [diff] [blame] | 89 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 90 | * many tests under appserver/tests subdirectories; they are still waiting for someone's attention. |
arjantijms | 79b293d | 2020-06-09 15:17:29 +0200 | [diff] [blame] | 91 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 92 | ## Basic Usage |
arjantijms | 79b293d | 2020-06-09 15:17:29 +0200 | [diff] [blame] | 93 | |
David Matějček | 3501385 | 2021-11-28 19:19:06 +0100 | [diff] [blame] | 94 | * Starting Eclipse GlassFish: `glassfish7/bin/asadmin start-domain` |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 95 | * Visit [http://localhost:4848](http://localhost:4848) |
David Matějček | 3501385 | 2021-11-28 19:19:06 +0100 | [diff] [blame] | 96 | * Stopping Eclipse GlassFish: `glassfish7/bin/asadmin stop-domain` |
arjantijms | 79b293d | 2020-06-09 15:17:29 +0200 | [diff] [blame] | 97 | |
David Matějček | d1f60a1 | 2021-11-17 23:10:33 +0100 | [diff] [blame] | 98 | ## Professional Services and Enterprise Support |
Gurkan Erdogdu | 43fb129 | 2021-09-22 15:21:14 +0300 | [diff] [blame] | 99 | |
| 100 | This section is dedicated to companies offering products and services around Eclipse GlassFish. |
| 101 | |
| 102 | The Eclipse GlassFish project does not endorse or recommend any of the companies on this page. We love all our supporters equally. |
| 103 | |
| 104 | Professional Services and Enterprise support are available through following companies: |
| 105 | - [ManageCat](https://www.managecat.com/services-and-support/eclipse-glassfish-enterprise-support). |