"adrian(a)jboss.org" wrote :
| I don't understand what you are doing.
Federated or group resource visitor. ;-)
e.g. I have different / multiple resource visitors and their matching filters / recurse filters
And I would like to run them all on the same module.
I could do it either
- visit module n times
- visit module only once, but apply RVs as they match along the visit path
Which do you like more? :-)
"adrian(a)jboss.org" wrote :
| The JIRA issue talks about ResourceLookup and you say
| | hence requiring RV per resource.
| why wouldn't it just use use Class(Loader).getResource(s)
| why do you need a complicated visitor for this?
Since I'm already visiting Seam's classpath for annotations,
why shouldn't I build that metadata along the way,
instead of doing additional n lookups for different Seam resources.
And this way I can use regexp or (name-your-waaaay-better-matching-strategy-here-than-CL-findResource) to get the matching resources. ;-)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4179806#4179806
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4179806
"mark.little(a)jboss.com" wrote : "wolfc" wrote : How can we plug-in another implementation? It appears to me that the usage of SocketProcessId is hard-coded.
| No it's not. As Jonathan mentioned earlier there are a couple of approaches that are implemented. New implementations can be added through the Arjuna Process interface mechanism. It's just that the default is based on a Socket.
Actually you are both partially right. There is an interface providing for abstraction, but the implementation class to use is hardcoded rather than read from the properties file. You need to programatically override it using com.arjuna.ats.arjuna.utils.Utility.setProcess(...)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4179800#4179800
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4179800
Btw. Is somewhere example of using OO application with process engine. I am not interested in technologies but in principles. Only interesting articel I found is this http://devhawk.net/2004/01/30/SOA+Vs+OO+In+Business+Process.aspx . When I look for SOA everyone is describing integration and WS:( When I look on jBPM.. tutorials I find only not OO examples. Application knows only tasks and processes..
I like this form the article. Think programming without processes all logic in business object is horrible. But I have no experience with proper use of business objects with the process engine.
This is what I like form article:
Typically, the developer sees these processes as methods: Order.Place(), Order.Fulfill(), Order.ProcessPayment(). However, these business processes don't represent things the business object is doing, rather things being done to the business object. It's a subtle difference, but it's very important.
In Ivar Jacobson's Object-Oriented Software Engineering, he talks about how over time objects tend to evolve to have methods that are only used in a single use case. He separated the concepts of the "entity" object - which represents a business object that has persistent state - and the "control" object - which represents a process that modifies the state of one or more entities. In my experience, mapping use cases to control objects is a good first order approximation of your final system design.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4179789#4179789
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4179789
maybe you are right. For sure performance is a issue and there should be a lot of indices. I'm only evaluating jBPM for future use a I thought this would be more general than business key. I have not found a process yet where you need to search for a task with more than one criteria (on one page tasks will be listed with one criteria, on another with another criteria). So from this perspective business key is ok.
But I have found this use case:
You start business process on page where business object BO1 is present, business object creates another business object BO2 some tasks are present on the page where you edit BO1, some on the page where you edit BO2. Does it mean that I should store some kind of ssn and save the same in both objects? I thought that to search for tasks will make from this the same issue as if searching for business object.
And this one (only fictive not form business) case where business key is not enough:
Imagine "friend link" example. On the page of first user sees all requests he requested and he can cancel some of them -> key should be friend. User2 sees all the requests he can accept/reject -> key should be friend2 They can't have the same key. So solution for this is to have business key in TaskInstance not in ProcessInstance. And this will be the solution for first case as well and I can left out ssn form business object:) I think that it is better to refence object form process and not vice versa. Now we use this solution and I call it business object as "task owner" and the id of business task is stored in task variable. It is not the same as assigning task to user because authorization is there as well so it is assigning task to combination of showed business object and logged user. What do you think about this?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4179788#4179788
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4179788
As an aside there's still one other part of the CCM that needs changing
such that it can work without a TM configured.
This is the code that tries to hand off connection close checking to the
end of the transaction if it exists and hasn't already ended.
| private CloseConnectionSynchronization getCloseConnectionSynchronization(boolean createIfNotFound)
| Transaction tx = tm.getTransaction();
| if (tx != null)
| CloseConnectionSynchronization cas = (CloseConnectionSynchronization) TransactionSynchronizer.getCCMSynchronization(tx);
| if (cas == null && createIfNotFound && TxUtils.isActive(tx))
| cas = new CloseConnectionSynchronization();
| TransactionSynchronizer.registerCCMSynchronization(tx, cas);
| return cas;
| catch (Throwable t)
| log.debug("Unable to synchronize with transaction", t);
| return null;
This obviously needs some rewrite in the way it works.
i.e. it needs to handle the case where there is no TM
I guess the easiest solution is to have transaction-jboss-beans.xml
inject the TM into the TransactionSynchronizer and then have the CCM
delegate all TM operations to the TransactionSynchronizer.
But this solution has the problem that a JCA implemenation detail is configured
inside the transaction manager config. Although this might be appropriate for
easily removing TM support, it is not appropriate for the opposite case
where the TM is used without JCA.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4179785#4179785
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4179785