In the first screencast, I installed a minimal GlassFish v3 from a small bootstrap (IPS toolkit), created a domain and started the server. The second entry did something actually useful with GlassFish and two containers: Java Web and Spring. In this screencast, I layer a custom distribution on top of a GlassFish kernel. Enough to deploy a JAXR-RS / EJB 3.1 (lite) application.
For the sake of brevity this screencast is mostly command-line. It starts with the 5MB ips bootstrap and installs a pre-defined custom distribution which is enough to deploy the jersey-ejb sample application. The custom distribution is essentially an IPS package with no artifact, only a set of dependencies on other packages. For the curious out there, here is the step-by-step for the screencast :
% 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/pkg install sample-distro
% bin/asadmin create-domain --instanceport 8080 --adminport 4848 mydomain
% bin/asadmin start-domain
% bin/asadmin deploy ~/jersey/jersey/samples/jersey-ejb/target/jersey-ejb.war
% open http://localhost:8080/jersey-ejb/
I hope this series of screencasts demystifies the IPS/packaging side of GlassFish and shows the interesting possibilities it offers to end-users.
In the first screencast, I installed a minimal GlassFish v3 from a small bootstrap (IPS toolkit), created a domain and started the server. This entry will actually do something useful with GlassFish and two containers: Java Web and Spring.
The Spring DM (OSGi) part of the demo is described in Jerome’s GlassFish V3 Extensions, part 3 : Spring, Java EE 6 and OSGi blog entry. In the screencast, the manual install of the Spring bits is replaced by adding a new repository definition (a local one) and installing a single package from there. For the rest, the demo demonstrates how to extend GlassFish without using any GlassFish API and how to invoke an OSGi bundle service without using any OSGi API – the servlet injects the service by name using a standard
@Resource annotation. Note that Jerome’s most recent blog entry covers OSGi Declarative Services for a somewhat simpler approach.
The screencast was done using the dev/ repository, so your experience may vary as the boundaries of the IPS packages and their dependencies are still being worked. Also, instead of the default Felix console briefly shown, you could use the web console described by Sahoo.
The next screencast will show how one can seamlessly add more GlassFish v3 features to obtain a “full” Java EE application server and still benefit from the modular architecture in terms of pay-as-you-grow (startup time, load-on-demand, memory consumption, …).
Given the modular approach taken in GlassFish v3 (170+ OSGi bundles in v3 Preview) and the IPS/pkg(5) tooling provided, I created a first screencast showing the following :
• install the IPS toolkit image (download), a 5MB bootstrap
• define the repository to get to the GlassFish v3 bits (pkg.glassfish.org/v3/dev/ in this case)
• install the minimum set of packages required to create and start a domain (using the
pkg command-line and the graphical
The full-size (and offline) video is available here (15MB, video/x-m4v).
Further screencasts will show how one can add selected features (containers) to deploy specific applications.
Of course you don’t have to be fiddling around with the various GlassFish v3 packages and could also be downloading one of two GlassFish v3 Preview distributions: web profile and full Java EE 6. Even then you’ll only pay for what you use.