[Design of Clustering on JBoss] - Re: HANamingService IllegalStateException: Must call setClus
by bstansberry@jboss.com
Looks like the issue here is JBossCacheDistributedTreeManager should have the HAPartitionCacheHandler injected instead of its cache property. It can then call acquireCache() during the start phase of the HANamingService. The current code works if HAPartition goes through start() before JBossCacheDistributedTreeManager is constructed/has properties injected, which is of course too fragile. I'm assuming your move of stuff out of conf/jboss-service.xml has altered the order in which things occur by allowing a bunch of beans to go through construction/property injection while waiting to go through create/start until the naming service dependency is subsequently satisfied.
This is all a hack to speed startup by allowing HAPartition to start a cache and HAPartition's own core channel in parallel. I've been sorely tempted to make the whole issue go away by reverting DistributedState and HA-JNDI to not use JBoss Cache. Using JBC for these adds a lot of conceptual ugliness for what seems like little benefit.
That's a fairly substantial effort though, so I'll just get the dependencies correct this morning.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4182117#4182117
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4182117
16 years, 3 months
[Design of POJO Server] - Re: JBAS-6061 or weird nested jar
by adrian@jboss.org
"alesj" wrote :
| What happens is that when VFS tries to read top sqljdbc.jar it finds inner sqljdbc.jar.
| Currently the policy in JBossAS is to unpack nested jar into temp and again handle them as top level jars.
| But in this case - probably due to 0 size - JDK's Zip handling fails while handling this newly unpacked inner sqljdbc.jar,
| propagating the error all the way to the top - classloading part.
|
It's only referenced by the VFS because the JarStructure is adding it as a
subdeployment. You could add an option to JarStructure that says something
like:
| <property name="ignoreBrokenJars">true</property>
|
Then in jar structure
| else if (JarUtils.isArchive(file.getName()))
| {
| + if (ignoreBrokenJars && validateZipFile(file))
| + {
| + log.warn("Ignoring broken archive: " + file);
| + return false;
| + }
|
| if (trace)
| log.trace("... ok - its an archive or at least pretending to be.");
| }
|
where validateZipFile() checks to see whether the x.jar or y.zip is really
an archive.
It might be an idea to do the validateZipFile() anyway since we'll then have
"fail early" behaviour when it looks at the structure of the deployment
if one of the jars is broken.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4182091#4182091
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4182091
16 years, 3 months
[Design of JBoss ESB] - jBPM Integration - Bug and improvement ideas
by camunda
Hi.
I currently have a deeper look into the jBPM/ESB integration. Some things still puzzle me, and I wanted to raise two issues here because I see room for improvement ;-)
1.) Bug in JBpmCallback?
The JBpmCallback should send a signal to the one jbpm process, which triggered the ESB-Service. Right? (By the way: Some JavaDoc would be very nice here :-))
I think there is a bug in the implementation, and I didn't find a test for it, so I am not sure if it is really a bug or if I got the use case wrong:
CommandExecutor, line 127 (CALLBACK_EXECUTOR) is
EPR toEpr = message.getHeader().getCall().getTo()
Shouldn't that be
EPR toEpr = message.getHeader().getCall().getReplyTo()
The required token information is set in the replyTo EPR, and this makes sense:
EsbActionHandler:
EPR replyTo = createReplyTo(esbToBpmVarsXml, globalProcessScope, executionContext);
message.getHeader().getCall().setReplyTo(replyTo);
Or did I miss something?
2.) Codebase around CommandExecutor
The CommandExecutor class and the stuff arround it is quite hard to understand I think. It is a Command pattern (ESB: execute(message)) with a nested Command pattern (jBPM: execute(Command)). Is there a special reason for this? Why is it not done via methods (e.g. commandExecutor.executeCallback(method))? Even if that would require some if/else parsing for the OpCodes it would be much easier to understand I think. Or what do you think?
Don't get me wrong, the code overall is okay, but I find the structuring very confusing and ApiDoc are mostly missing...
Before I get dismissed, I can also volunteer for improving some of this areas :-) Since I expect to tackle a lot of these things anyway at the moment. I am committer in jBPM, so I signed the contributer agreement already, just need access to the SVN if you want to....
Let me know what you guys think about it!
Cheers
Bernd
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4182086#4182086
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4182086
16 years, 3 months