Integration of Clustered DeploymentRepository in
brian.stansberry Apr 6, 2009 1:59 PMI've gotten a clustered DeploymentRepository working, providing functionality equivalent to (actually better than) the AS 4.x FarmService.[1] It's checked into trunk and Branch_5_x and is being tested via the tests-clustered-profileservice target in the testsuite. But it's not currently used in the all/default/standard configs.
Next step is to get it used in at least "all", approach to which is the subject of this thread.
The configuration change to make this work is in the conf/bootstrap/profile.xml file. The configuration that is needed can be seen at [2]. This is fairly different; has a different impl of the "BootstrapProfileFactory" bean plus adds three other beans.
A couple of possible approaches here:
A) Keep two versions of this profile.xml file in the source tree and change the build script such that the cluster-aware one gets used in the "all" config only. This is the way we used to handle the JBoss Web service's -service.xml. Downside is you have to keep the two source files in sync, which proved to be a minor pain point with the JBoss Web integration.
B) Use the version at [2] for all the configs, all/default/standard. The way the clustered deployment repo works, this doesn't actually pull in any extra dependencies to the bootstrap. The "ClusteredDeploymentRepositoryFactory" bean has an incallback via which the HAPartition clustering support services are injected when stuff in all/deploy/cluster is deployed [3]. The clustered deployment repository only checks that the necessary clustering services are available if one of the URLs it's configured to manage actually exists. Bottom line, if you run the "default" config you won't have an HAPartition, but the clustered deployment repository won't fail/complain because you also won't have a "farm" dir.
Personally, I think A) is the way to go; B) is a kludge that's hard to explain.
Thoughts?
BTW, this will be simpler in AS 6/trunk since finer-grained subprofiles will be used instead of the Branch_5_x "BootstrapProfileFactory" impl. An "all" config would include the needed beans in subprofiles; "default" wouldn't.
[1] See http://www.jboss.org/index.html?module=bb&op=viewtopic&t=150107 for some discussions on this.
[2] https://svn.jboss.org/repos/jbossas/branches/Branch_5_x/testsuite/src/resources/test-configs/cluster-profilesvc-0/conf/bootstrap/profile.xml
[3] https://svn.jboss.org/repos/jbossas/branches/Branch_5_x/testsuite/src/resources/test-configs/cluster-profilesvc-0/deploy/cluster/farm-deployment-jboss-beans.xml