I gladly add new functionality or providers to the API but I would be definitely not the right person to make such modifications in the core API.
Can somebody make some suggestions? I really have to make a decision: maven-scm or not. Our internal API supports cvs, svn, vss, pvcs and cm-synergy but maven-scm has much more functionally thus I would love to replace our API but I need a solution that can be used in a environment with lot of parallel users. Zsolt >-----Original Message----- >From: Trygve Laugstøl [mailto:[EMAIL PROTECTED] >Sent: Tuesday, April 11, 2006 2:23 PM >To: scm-users@maven.apache.org >Subject: RE: Is scm-maven thread safe? > >On Tue, 2006-04-11 at 14:07, Zsolt wrote: >> I have viewed a lot of maven-scm source code (but not maven core) and >find >> the structure clean and I didn't see anything I would consider this API >as >> NOT thread safe. >> >> But it is very important to know from beginning what is NOT thread safe. >I >> understand that also this API has probably bugs (like our software) but I >> need more understanding the multi thread problems we can have or how they >> can be prevented (I'm sure you understand, that sometime it is really >hard >> to reproduce and fix a multi-thread related bug). >> >> As I described below serialization of the request is not an option >because >> one user can checkout and a second view resource history the same time. >> >> Trygve, if I understand you correctly I should somehow assure that I >create >> a new provider instance for each request. > >Either that or ensure that all of the providers are thread safe. > >> I don't know how to do that but think it must be simple. > >It boils down to either making the providers have this stanza in >components.xml: > > <instatiation-strategy>per-lookup</instatiation-strategy> > >and then have _each client return the instance_ back to the container so >that all requirements can be properly released. > >The alternative is to make the providers thread safe too which might not be >too hard, and the API would be easier to use for the client. > >I'm not entirely sure what the best way is but I would suggest that one >look into making the providers thread safe because that keeps the API >simple and easier to use for the clients. Easier to use usually means less >buggy client code which is good :) It *might* make the provider a bit >harder but I hope the cleaner/easier API should out weight the more complex >code. > >> If that is the only limitation, that is absolutely fine for me. > >It's not a big requirement, but it might still be a hard one if there is an >issue. The core API is really simple and should indeed be pretty much >thread safe, but the providers might not be as they run processes etc which >they might have to keep track on over time etc. > >-- >Trygve