Affects Version/s: 3.1
Fix Version/s: 3.1_dev
Operating System: All
I'm attempting to run Glassfish on Equinox and to deploy application bundles
in-place directly from my Eclipse workspace (see the referenced forum message
for more background).
EJB bundles currently fail to deploy due to issues on both sides (i.e. Equinox
The Eclipse part of the problem:
Workspace bundles get installed in OSGi as an unzipped directory, but the folder
structure is not exactly the same as you would see in an unzipped JAR. Instead,
you get the following:
All the classfiles are under bin/.
Glassfish uses Bundle.getEntryPaths() to discover the bundle contents and to
explode the bundle to a temp directory (I wonder why this is required).
Now apparently for an entry "/bin/com/acme/Foo.class", Glassfish tries to load a
class bin.com.acme.Foo and fails, so the bundle seems to have no classes at all
and deployment fails.
I've patched Equinox to change the getEntryPaths() behaviour in development
mode, and this is a workaround for the problem. See
However, as pointed out in that bug, the default folder structure of Eclipse
workspace bundles can be turned into a fully compliant OSGi bundle by simple
Bundle-Classpath: bin/, .
to the manifest.
I added this manifest entry manually, but Glassfish still fails to deploy the
bundle, even when I zip it up as a JAR and install the JAR manually.