dev@glassfish.java.net

Are Deployers ordered?

From: Lee Chuk Munn <chuk-munn.lee_at_oracle.com>
Date: Sat, 16 Apr 2011 14:57:41 +0800

Hi

I'm in the process of implementing JPA for my container (XARContainer)
which is not a JavaEE application. I've got XARContainer running, viz
this is the container that runs the actual component.

I have a separate JPA container XJPAContainer, can't reuse existing
cause the app is not JavaEE, which handles JPA.

I have indicated in my both my XJPASniffer and XARSniffer that its not
compatible with 'org.glassfish.persistence.jpa.JPASniffer'
(getIncompatibleSnifferTypes()).

When I deploy my app, XJAPSniffer.handles() returns true. I've also
added some log statement which shows that XJPAContainer and XJPADeployer
have been instantiated by Glassfish. But for some reason,
XJPADeployer.prepare() was never called. Instead Glassfish is treating
my app as a JavaEE application so I'm getting an exception (see end of
this mail).

My question is is there some sort of ordering for Deployers? Or is there
a way to get GF to give preferences to my deployer?

Thanks

Regards
Chuk



[#|2011-04-16T14:23:20.482+0800|SEVERE|glassfish3.1|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=54;_ThreadName=Thread-1;|Archive
[jpatest] was deployed as a Java EE archive while it does not contain
any valid Java EE components. Please check the packaging of the archive.
java.lang.RuntimeException: Archive [jpatest] was deployed as a Java EE
archive while it does not contain any valid Java EE components. Please
check the packaging of the archive.
        at
org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:143)
        at
org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:93)
        at
com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:826)
        at
com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:768)
        at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:368)
        at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
        at
org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:370)
        at
com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
-- 
Any sufficiently advanced technology is indistinguishable from magic.
	-- Sir Arthur C Clarke