Re: resurrecting DeploymentPhase, that wouldn't help with my example case of a war in
deploy-hasingleton/. The missing dependency in the example is deploy/jbossweb.sar (the web
server) *not* deployers/jbossweb.deployer. (One of the things the war deployers do is
establish a dependency on the web server.) So, the MC knows to wait to install the war
beans until the webserver is available. But validating the "deploy-hasingleton"
profile won't give the MC a chance to be patient.
anonymous wrote : I did not really get what you meant with skipping the validation on a
re-entrant activateProfile :-/
The reentrant call path looks like this:
ProfileServiceBootstrap.start(Server) -->
ProfileService.activateProfile("all") --> HASingletonDeployer bean starts,
becomes master --> HASingletonProfileManager.activateProfile() -->
ProfileService.activateProfile("deploy-hasingleton")
One call to activateProfile() leads to another nested call.
Below is an example of ignoring the validation in a re-entrant call. (This is based on
doctoring AbstractProfileService rev 83388 before you change validate() to limit
validation to a single context.)
| private final ThreadLocal<Boolean> reentrantActivate = new
ThreadLocal<Boolean>();
|
| public void activateProfile(ProfileKey key) throws Exception
| {
| ...
|
| ProfileContext context = this.registeredProfiles.get(key);
| if(context == null)
| throw new NoSuchProfileException("No such profile: "+ key);
|
| Boolean reentrant = reentrantActivate.get();
| reentrantActivate.set(Boolean.TRUE);
| try
| {
| try
| {
| log.info("Activating profile: " + context.getProfile());
| controller.change(context, ControllerState.INSTALLED);
| }
| catch(Throwable t)
| {
| throw new RuntimeException(t);
| }
|
| // Check if the profile was activated successfully
| if (Boolean.TRUE.equals(reentrant) == false)
| {
| validate();
| }
| }
| finally
| {
| reentrantActivate.set(reentrant);
| }
| }
This validation thing is a pain in general; I vaguely recall some discussion with Scott
about a similar issue a year or two back. Perhaps we should move away from automatically
validating and instead make it part of the SPI? Let the caller decide when they want a
validation check and what to validate?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4205054#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...