blob: 9ece75232a6b7b49ce5d0f7f87950cc41c041193 [file] [log] [blame] [view]
Ivar Grimstad12e6de92020-06-29 19:24:53 +02001# Eclipse GlassFish
Vinay Vishal57171472018-09-18 20:22:00 +05302
Ivar Grimstad12e6de92020-06-29 19:24:53 +02003## About
4
David Matějčekd1f60a12021-11-17 23:10:33 +01005[Eclipse GlassFish](https://projects.eclipse.org/projects/ee4j.glassfish) is a Jakarta EE compatible implementation
6sponsored by the Eclipse Foundation.
Vinay Vishal57171472018-09-18 20:22:00 +05307
David Matějčekd1f60a12021-11-17 23:10:33 +01008### Compatibility
Vinay Vishal57171472018-09-18 20:22:00 +05309
David Matějček35013852021-11-28 19:19:06 +010010* Eclipse GlassFish 7.0.0 is Jakarta EE 10 compatible, requires Java 11, supports Java 18
David Matějčekd1f60a12021-11-17 23:10:33 +010011* 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
18The 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 Vishal57171472018-09-18 20:22:00 +053025
Christian Kaltepoth840c55f2021-05-22 13:35:02 +020026* JDK11+
David Matějček9f43a952022-04-13 22:51:35 +020027* Maven 3.6.0+
Vinay Vishal57171472018-09-18 20:22:00 +053028
David Matějčekd1f60a12021-11-17 23:10:33 +010029### Execution
Steve Millidgecc164da2018-11-13 08:18:45 +000030
David Matějčekda07c942022-02-16 13:59:11 +010031: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čekd1f60a12021-11-17 23:10:33 +010033* `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 Vishal57171472018-09-18 20:22:00 +053036
David Matějčekd1f60a12021-11-17 23:10:33 +010037You can use also some maven optimizations, ie. using `-T4C` to allow parallel build.
Vinay Vishal57171472018-09-18 20:22:00 +053038
David Matějčekd1f60a12021-11-17 23:10:33 +010039### Special Profiles
Vinay Vishal57171472018-09-18 20:22:00 +053040
David Matějčekd1f60a12021-11-17 23:10:33 +010041* `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 Vishal57171472018-09-18 20:22:00 +053045
David Matějčekd1f60a12021-11-17 23:10:33 +010046### Special Scripts
arjantijms79b293d2020-06-09 15:17:29 +020047
David Matějčekd1f60a12021-11-17 23:10:33 +010048* `./updateVersion.sh 6.99.99.experimental` - useful for custom distributions, so you can avoid conflicts with version in master branch.
David Matějčekcf41ba42022-03-03 22:55:21 +010049* `./runtests.sh [testBlockName] [?glassfishVersion]` - useful to run [old additional tests](#old-additional-tests) locally
David Matějčekd1f60a12021-11-17 23:10:33 +010050* `./validateJars.sh` - uses the bnd command to check OSGI dependencies in all target directories
arjantijms79b293d2020-06-09 15:17:29 +020051
David Matějčekd1f60a12021-11-17 23:10:33 +010052## Additional Testing
arjantijms79b293d2020-06-09 15:17:29 +020053
David Matějčekd1f60a12021-11-17 23:10:33 +010054After building the GlassFish distribution artifacts you can execute also additional tests managed by bash scripts.
55They are quite old and have high technical debt, but at this moment they still provide useful service.
Lukas Jungmannee91e332018-11-13 21:02:47 +010056
David Matějčekd1f60a12021-11-17 23:10:33 +010057### QuickLook
Lukas Jungmannee91e332018-11-13 21:02:47 +010058
David Matějček35013852021-11-28 19:19:06 +010059`mvn -f appserver/tests/quicklook/pom.xml test -Dglassfish.home=$(pwd)/appserver/distributions/glassfish/target/stage/glassfish7/glassfish`
Lukas Jungmannee91e332018-11-13 21:02:47 +010060
David Matějčekd1f60a12021-11-17 23:10:33 +010061* Usual time: 3 minutes
62* see [QuickLook_Test_Instructions](https://github.com/eclipse-ee4j/glassfish/blob/master/appserver/tests/quicklook/QuickLook_Test_Instructions.html)
arjantijms79b293d2020-06-09 15:17:29 +020063
David Matějčekd1f60a12021-11-17 23:10:33 +010064### Old Additional Tests
arjantijms79b293d2020-06-09 15:17:29 +020065
David Matějčekda07c942022-02-16 13:59:11 +010066:warning: if the script fails, sometimes it doesn't stop the domain and you have to do that manually.
67
David Matějčekcf41ba42022-03-03 22:55:21 +010068* `./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čekda07c942022-02-16 13:59:11 +010086* `./gfbuild.sh archive_bundles && ./gftest.sh ejb_web_all` - Usual time: 4 minutes
David Matějčekda07c942022-02-16 13:59:11 +010087* `./gfbuild.sh archive_bundles && ./gftest.sh ql_gf_web_profile_all` - Usual time: 2 minutes
David Matějčekd1f60a12021-11-17 23:10:33 +010088* `./gfbuild.sh archive_bundles && ./gftest.sh ql_gf_full_profile_all` - Usual time: 4 minutes
arjantijms79b293d2020-06-09 15:17:29 +020089
David Matějčekd1f60a12021-11-17 23:10:33 +010090* many tests under appserver/tests subdirectories; they are still waiting for someone's attention.
arjantijms79b293d2020-06-09 15:17:29 +020091
David Matějčekd1f60a12021-11-17 23:10:33 +010092## Basic Usage
arjantijms79b293d2020-06-09 15:17:29 +020093
David Matějček35013852021-11-28 19:19:06 +010094* Starting Eclipse GlassFish: `glassfish7/bin/asadmin start-domain`
David Matějčekd1f60a12021-11-17 23:10:33 +010095* Visit [http://localhost:4848](http://localhost:4848)
David Matějček35013852021-11-28 19:19:06 +010096* Stopping Eclipse GlassFish: `glassfish7/bin/asadmin stop-domain`
arjantijms79b293d2020-06-09 15:17:29 +020097
David Matějčekd1f60a12021-11-17 23:10:33 +010098## Professional Services and Enterprise Support
Gurkan Erdogdu43fb1292021-09-22 15:21:14 +030099
100This section is dedicated to companies offering products and services around Eclipse GlassFish.
101
102The Eclipse GlassFish project does not endorse or recommend any of the companies on this page. We love all our supporters equally.
103
104Professional Services and Enterprise support are available through following companies:
105- [ManageCat](https://www.managecat.com/services-and-support/eclipse-glassfish-enterprise-support).