I am certainly not a CVS expert. It appears that cvs diff compares your current code to the last version you grabbed unless you specify -r with another version specified. So, if you check what version is the latest in CVS, you can diff against it using -r. Personally, I do something similar to what you describe: whenever a change is checked in, I delete my local copy and use cvs update to get a new copy. That's also what I do to back out changes I've made.
There's probably a better way, but I stick with what works. You should see me use vi. I know about 10 commands, so I do some things very awkwardly, but I can get the job done. Scott Nichol ----- Original Message ----- From: "Pavel Ausianik" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, November 20, 2002 11:47 AM Subject: RE: Using mime parts - huge drawbacks > Scott, > > sorry, what is correct algorithm for working with CVS? I made some changes, > collect patch, send it to cvs. Than I run cvs checkout again, but my files > not updates. Only known solution I know is to move old src tree, get > completely new on, compare changes, put updated files, send collect patch > again. Most probably I'm doing something wrong... > > Please find also old patch for using pooled DocumentBuilder. > > Thanks, > Pavel > > > > -----Original Message----- > > From: Scott Nichol [mailto:[EMAIL PROTECTED]] > > Sent: Wednesday, November 20, 2002 4:23 PM > > To: [EMAIL PROTECTED] > > Subject: Re: Using mime parts - huge drawbacks > > > > > > Pavel, > > > > I could not use patch on these patches, apparently because > > they are done > > against older CVS versions. I need the diffs against the current CVS > > sources. Also, please send diffs for all 5 files (SOAPContext, Call, > > TransportMessage, RPCJavaProvider, RPCRouterServlet). > > > > Thanks. > > > > Scott Nichol > > > > ----- Original Message ----- > > From: "Pavel Ausianik" <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Sent: Wednesday, November 20, 2002 6:09 AM > > Subject: RE: Using mime parts - huge drawbacks > > > > > > > Scott, > > > > > > It seems like two bugs fixed. > > > > > > One is related to missed fillRootPart() in SOAPContext.writeTo() > > > Second is relates on how content type identified in case > > envelope is > > set > > > Attaching a patch against current cvs > > > > > > During mime test execution I had one error related to SOAP registry > > > > > > Generated fault: [Attributes={}] [faultCode=SOAP-ENV:Server] > > > [faultString=java.l > > > ang.IllegalArgumentException: No mapping found for > > 'java.lang.Object' > > using > > > enco > > > ding style 'http://schemas.xmlsoap.org/soap/encoding/'.] > > > [faultActorURI=/soap/se > > > rvlet/rpcrouter] [DetailEntries=] [FaultEntries=] > > > > > > This should not be related to Mime Part, and I'll look at > > this Friday > > (sorry > > > busy today-tomorrow) > > > > > > Best regards, > > > Pavel > > > > > > > > > > > > > -----Original Message----- > > > > From: Scott Nichol [mailto:[EMAIL PROTECTED]] > > > > Sent: Wednesday, November 20, 2002 8:26 AM > > > > To: [EMAIL PROTECTED] > > > > Subject: Re: Using mime parts - huge drawbacks > > > > > > > > > > > > Pavel, > > > > > > > > I applied these patches, but the mime sample does not work. > > > > Please get > > > > this sample working and submit a new patch. > > > > > > > > Thanks. > > > > > > > > Scott Nichol > > > > > > > > ----- Original Message ----- > > > > From: "Pavel Ausianik" <[EMAIL PROTECTED]> > > > > To: <[EMAIL PROTECTED]> > > > > Sent: Friday, November 15, 2002 9:59 AM > > > > Subject: RE: Using mime parts - huge drawbacks > > > > > > > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > I think I managed make it compatible to existing code and yet > > still > > > > mush > > > > > faster (8-10 sec of 60 I had in the morning ). The Mime > > part will > > be > > > > creates > > > > > as soon as it requested, otherwise plain Envelope used > > > > > Also I set up initial buffer in couple of classes... > > > > > > > > > > Please take a look > > > > > > > > > > Also, if comparing to yesterday's picture timeload, we have > > > > 4 big time > > > > > consumers, which I suppose quite logical > > > > > > > > > > 1. DocumentBulder.parse > > > > > 2. RPCMessage.extractFromEnvelope > > > > > 3. EnvelopeMaprshall > > > > > 4. InputStream.read > > > > > > > > > > Pavel > > > > > > > > > > > -----Original Message----- > > > > > > From: Scott Nichol [mailto:[EMAIL PROTECTED]] > > > > > > Sent: Thursday, November 14, 2002 6:54 PM > > > > > > To: [EMAIL PROTECTED] > > > > > > Subject: Re: Using mime parts - huge drawbacks > > > > > > > > > > > > > > > > > > Thanks for yet another valuable contribution! I've committed > > this > > > > > > patch. Your others will have to wait a little while > > > > since I have to > > > > > > earn some money today (instead of working on Apache SOAP). > > > > > > > > > > > > I have some questions. > > > > > > > > > > > > 1. What do you use to do this profile? I have very little > > > > experience > > > > > > with profilers, mainly with JInsight, but that was over a > > > > year ago. > > > > > > > > > > > > 2. What is "ComplexRequest"? > > > > > > > > > > > > 3. Do you know what version of JavaMail you are using? > > > > > > > > > > > > Something very interesting that I had not noticed > > before is that > > > > > > provider.invoke gets on the request and response contexts, so > > > > > > that even > > > > > > "plain" RPCs have their SOAP envelope put into SOAPContext and > > > > > > subsequently extracted. I am thinking that the SOAPContext > > > > > > should gain > > > > > > the ability to hold a SOAP envelope other than simply as the > > root > > > > part > > > > > > to avoid the expense of extracting it. In fact, > > > > SOAPContext should > > > > be > > > > > > able to keep track of whether there are any attachments > > > > versus just > > > > an > > > > > > evelope to optimize the situation where there is only an > > envelope. > > > > We > > > > > > would use lazy evaluation to stuff it into the root part > > > > if the root > > > > > > part is requested, but otherwise provide shortcuts to just > > access > > > > the > > > > > > envelope. > > > > > > > > > > > > Scott Nichol > > > > > > > > > > > > ----- Original Message ----- > > > > > > From: "Pavel Ausianik" <[EMAIL PROTECTED]> > > > > > > To: <[EMAIL PROTECTED]> > > > > > > Sent: Thursday, November 14, 2002 9:04 AM > > > > > > Subject: RE: Using mime parts - huge drawbacks > > > > > > > > > > > > > > > > > > > Scott, > > > > > > > > > > > > > > Here is server time picture taken on the Tomcat server , > > > > processing > > > > > > > ComplexRequest. > > > > > > > The red ellipses show that MimePart initialization takes > > 10-15% > > > > of > > > > > > CPU > > > > > > > load. > > > > > > > The blue ellipses show that ContentType is also quite > > expensive > > > > for > > > > > > benefits > > > > > > > it provide. I prepared patch for caching ContentType... > > > > > > > > > > > > > > Pavel > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > From: Scott Nichol [mailto:[EMAIL PROTECTED]] > > > > > > > > Sent: Wednesday, November 13, 2002 5:48 PM > > > > > > > > To: [EMAIL PROTECTED] > > > > > > > > Subject: Re: Using mime parts - huge drawbacks > > > > > > > > > > > > > > > > > > > > > > > > Pavel, > > > > > > > > > > > > > > > > Yes, this is a good observation. In the case where > > > > there are no > > > > > > > > attachments, the process could be streamlined by > > serializing > > > > > > directly. > > > > > > > > I am still actively working on this part of the code > > > > > > > > (TransportMessage, > > > > > > > > SOAPContext, Call) and will look at sidestepping > > some of the > > > > > > activity > > > > > > > > where there are no attachments, just a SOAP > > envelope, which > > > > > > > > as you point > > > > > > > > out is the typical scenario. > > > > > > > > > > > > > > > > Scott Nichol > > > > > > > > > > > > > > > > ----- Original Message ----- > > > > > > > > From: "Pavel Ausianik" <[EMAIL PROTECTED]> > > > > > > > > To: <[EMAIL PROTECTED]> > > > > > > > > Sent: Wednesday, November 13, 2002 9:04 AM > > > > > > > > Subject: Using mime parts - huge drawbacks > > > > > > > > > > > > > > > > > > > > > > > > > Hello, > > > > > > > > > > > > > > > > > > thinking more on the current code I have found > > interesting > > > > > > > > thing. Most > > > > > > > > > requests we have a simple, straight SOAP envelopes, > > without > > > > any > > > > > > > > attachments. > > > > > > > > > Looking how it is processed I have found > > following (traced > > > > from > > > > > > > > > httpconnection): > > > > > > > > > > > > > > > > > > In SOAPHTTPConnection.send() we call > > > > TransportMessage.save(). > > > > > > > > > Let's look into it (see my comment how I understand it: > > > > > > > > > > > > > > > > > > String rootContentType = null; > > > > > > > > > > > > > > > > > > // Root Part is Not set for Simple Envelope ! > > > > > > > > > > > > > > > > > > if (ctx.isRootPartSet()) { > > > > > > > > > //... Not in use for simple case > > > > > > > > > } > > > > > > > > > > > > > > > > > > if (rootContentType == null) > > > > > > > > > rootContentType = > > > > > > Constants.HEADERVAL_CONTENT_TYPE_UTF8; > > > > > > > > > if (getEnvelope() != null) { > > > > > > > > > > > > > > > > > > // Now really create root part - how important > > it is if we > > > > > > > > now how to > > > > > > > > write > > > > > > > > > this Envelope without involving Mime !!! > > > > > > > > > > > > > > > > > > ctx.setRootPart(envelope, rootContentType); > > > > > > > > > } else { > > > > > > > > > //... Not in use for simple case > > > > > > > > > } > > > > > > > > > > > > > > > > > > // Print the whole response to a byte array. > > > > > > > > > // Tracing into this code we'll found that all > > it will do > > it > > > > add > > > > > > > > > unnecessary header to envelope > > > > > > > > > // The headers include Content-Type - we know which is, > > > > > > > > > // Content-id - do we need it? Even if yes we can > > > > create any > > > > id > > > > > > > > > // Content-Transfer-Encoding - not for HTTp, anyway we > > > > > > force it to > > > > > > 8 > > > > > > > > bit > > > > > > > > > // Content-Lenght - easy to calculate > > > > > > > > > > > > > > > > > > ByteArrayOutputStream payload = > > > > > > > > > new ByteArrayOutputStream(1024); > > > > > > > > > ctx.writeTo(payload); > > > > > > > > > bytes = payload.toByteArray(); > > > > > > > > > > > > > > > > > > // Now strip off the headers. (Grmbl, get rid > > > > > > of JavaMail > > > > > > > > > // for MIME support). Just intercept the > > > > Content-Type > > > > > > > > > // Remove headers which created right now.... > > > > > > > > > > > > > > > > > > .... > > > > > > > > > > > > > > > > > > // TODO: should not send for HTTP response > > > > > > > > > headers.put("Accept-Encoding", "x-gzip"); > > > > > > > > > if (Boolean.TRUE.equals(ctx.getGzip())) { > > > > > > > > > // Deflate > > > > > > > > > ByteArrayOutputStream baos = > > > > > > > > > new > > > > > > > > ByteArrayOutputStream(bytes.length > > > > > > > > * 2); > > > > > > > > > GZIPOutputStream gzos = new > > > > GZIPOutputStream(baos); > > > > > > > > > gzos.write(bytes, offset, bytes.length > > > > - offset); > > > > > > > > > gzos.close(); > > > > > > > > > baos.close(); > > > > > > > > > bytes = baos.toByteArray(); > > > > > > > > > offset = 0; > > > > > > > > > > > > > > > > > > headers.put("Content-Encoding", "x-gzip"); > > > > > > > > > } > > > > > > > > > > > > > > > > > > Seems like we are doing wonderful job of running a lot > > > > > > unnecessary > > > > > > > > > operations, involving a lot of memory allocations... It > > > > > > > > could be most > > > > > > > > > advanced improvement we ever done! > > > > > > > > > > > > > > > > > > Best regards, > > > > > > > > > Pavel > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > To unsubscribe, e-mail: > > > > > > > <mailto:[EMAIL PROTECTED]> > > > > > > > > For additional commands, e-mail: > > > > > > <mailto:[EMAIL PROTECTED]> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > To unsubscribe, e-mail: > > > > > > <mailto:[EMAIL PROTECTED]> > > > > > > > For additional commands, e-mail: > > > > > > <mailto:[EMAIL PROTECTED]> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -------------------------------------------------------------- > > > > > > ---------- > > > > > > -------- > > > > > > > > > > > > > > > > > > > -- > > > > > > > To unsubscribe, e-mail: > > > > > > <mailto:[EMAIL PROTECTED]> > > > > > > > For additional commands, e-mail: > > > > > > <mailto:[EMAIL PROTECTED]> > > > > > > > > > > > > > > > > > > -- > > > > > > To unsubscribe, e-mail: > > > > <mailto:[EMAIL PROTECTED]> > > > > > > For additional commands, e-mail: > > > > <mailto:[EMAIL PROTECTED]> > > > > > > > > > > > > > > > > > > > > > > > > > > > > -------------------------------------------------------------- > > > > ---------- > > > > -------- > > > > > > > > > > > > > -- > > > > > To unsubscribe, e-mail: > > > > <mailto:[EMAIL PROTECTED]> > > > > > For additional commands, e-mail: > > > > <mailto:[EMAIL PROTECTED]> > > > > > > > > > > > > -- > > > > To unsubscribe, e-mail: > > <mailto:[EMAIL PROTECTED]> > > > > For additional commands, e-mail: > > <mailto:[EMAIL PROTECTED]> > > > > > > > > > > > > > > > > -------------------------------------------------------------- > > ---------- > > -------- > > > > > > > -- > > > To unsubscribe, e-mail: > > <mailto:[EMAIL PROTECTED]> > > > For additional commands, e-mail: > > <mailto:[EMAIL PROTECTED]> > > > > > > -- > > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > > > > ------------------------------------------------------------------------ -------- > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>