How Things Work - IPS and GF v3 Packages, continued
By pelegri on Jun 28, 2009
Alexis has posted additional entries in his GlassFish à la carte series. Part I and Part II (also see Review) showed how to get a minimal distro and add components to it, including some containers; Part III shows how to create a Custom Layered Distro from GlassFish v3 using the IPS tools.
The distro only bundles pre-existing components; enough to run an ejb/jersey sample. I think that this layered distro arrangement may become quite common for distribution of packages for GFv3 and it nicely shows the power of the modularity in GFv3, IPS and the embedded IPS support in GFv3.
Alexis' examples show how to create the new package, add it to your own IPS repository, and then create a new domain to run the EJB-Jersey sample. The IPS setup is very easy thanks to the documents and binaries from IPS Best Practices project, plus the Package Prototype from Alexis.
The whole thing works like a champ; excerpting some of the key commands from my shell trascript:
# Created a directory for my local repo % pkg/bin/pkg.depotd -p 10001 -d /Users/pelegri/Software/my-repo # port no. and store dir. # downloaded package prototype and renamed it as pkg_proto_epll.py % cat >LICENSE.txt # need a LICENSE file! % pkg/bin/makepkgs -s http://localhost:10001/ -b ../Sample ../Sample/pkg_proto_epll.py % bin/pkg set-publisher -P --enable -O http://pkg.glassfish.org/v3/dev dev.glassfish.org % bin/pkg set-publisher --enable -O http://localhost:10001 localRepo % bin/updatetool # screenshot % bin/pkg install sample-distro # pretty much all done % bin/asadmin create-domain --instanceport 8080 --adminport 4848 mydomain % bin/asadmin start-domain mydomain # download the jersey-ejb sample WAR file % bin/asadmin deploy ../../jersey-samples/jersey-ejb-1.1.1-ea-SNAPSHOT.war % open http://localhost:8080/jersey-ejb/ # screenshot