You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
(66) |
Apr
(29) |
May
(85) |
Jun
(66) |
Jul
(24) |
Aug
(139) |
Sep
(72) |
Oct
(26) |
Nov
(142) |
Dec
(34) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(55) |
Feb
(72) |
Mar
(43) |
Apr
(60) |
May
(95) |
Jun
(22) |
Jul
(48) |
Aug
(17) |
Sep
(54) |
Oct
(30) |
Nov
(82) |
Dec
(17) |
2007 |
Jan
(23) |
Feb
(38) |
Mar
(46) |
Apr
(12) |
May
(77) |
Jun
(77) |
Jul
(94) |
Aug
(51) |
Sep
(38) |
Oct
(57) |
Nov
(39) |
Dec
(67) |
2008 |
Jan
(38) |
Feb
(56) |
Mar
(42) |
Apr
(46) |
May
(37) |
Jun
(43) |
Jul
(52) |
Aug
(22) |
Sep
(22) |
Oct
(34) |
Nov
(37) |
Dec
(29) |
2009 |
Jan
(27) |
Feb
(35) |
Mar
(67) |
Apr
(37) |
May
(31) |
Jun
(79) |
Jul
(71) |
Aug
(59) |
Sep
(31) |
Oct
(47) |
Nov
(36) |
Dec
(7) |
2010 |
Jan
(15) |
Feb
(87) |
Mar
(38) |
Apr
(33) |
May
(24) |
Jun
(47) |
Jul
(26) |
Aug
(28) |
Sep
(33) |
Oct
(13) |
Nov
(8) |
Dec
(36) |
2011 |
Jan
(32) |
Feb
(10) |
Mar
(29) |
Apr
(29) |
May
(17) |
Jun
(14) |
Jul
(33) |
Aug
(11) |
Sep
(7) |
Oct
(7) |
Nov
(6) |
Dec
(10) |
2012 |
Jan
(19) |
Feb
(12) |
Mar
(16) |
Apr
(6) |
May
(18) |
Jun
(18) |
Jul
(31) |
Aug
(25) |
Sep
|
Oct
(31) |
Nov
(21) |
Dec
(9) |
2013 |
Jan
(8) |
Feb
(16) |
Mar
(8) |
Apr
(7) |
May
(3) |
Jun
(29) |
Jul
(29) |
Aug
|
Sep
(7) |
Oct
(9) |
Nov
(1) |
Dec
(1) |
2014 |
Jan
(3) |
Feb
(4) |
Mar
|
Apr
(13) |
May
(8) |
Jun
(5) |
Jul
(2) |
Aug
(4) |
Sep
(4) |
Oct
(2) |
Nov
|
Dec
(2) |
2015 |
Jan
(1) |
Feb
|
Mar
(2) |
Apr
|
May
(2) |
Jun
(1) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
(2) |
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
(3) |
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
(2) |
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Torsten C. <tc...@ap...> - 2005-08-16 13:21:51
|
On 16.08.2005, at 14:59, Elliotte Harold wrote: > Torsten Curdt wrote: > > >> Well, then I'll better move that code >> out into a helper method and test >> it once. Ok. >> > > No, you need to test the code as written. If you have to reorganize > your code to test it something's wrong. In this case, the test > would not be testing the real behavior of your app. Well, I don't agree. Quite often testing can make you change your design so things actually become testable. Which is not an anti pattern IMO. In fact in this case - there is no need to try/catch the exception in every place where a delay is needed. Factoring it out into helper function would only reduce the number of times I have to test. It would only help me get rid of try/catches in code where they are not needed. >> But how would you do that when you >> catch an IOException reading from >> a file system for example. How would >> you simulate an IOException if you >> cannot inject a mock stream/file. >> > > You need to set up the situation so that the IOException is thrown. Sure ...but setting this up can be really complicated. Not really a cobertura problem so maybe too OT. > In this example, it's an InterruptedException you're trying to > test, not an IOException though. launch a thread that will > interrupt the tested thread while it's sleeping (tricky, but > doable). You'll probably need to get a list of all the running > threads and find the one that's sleeping. For the sleep it's probably easy to come up with a testcase - but not for the IOException. :-/ Thanks for your help cheers -- Torsten |
From: Torsten C. <tc...@ap...> - 2005-08-16 13:12:16
|
> The other thing to consider is not requiring 100% coverage from > your tests. Well, you don't even "require" tests ;) ...but having both should be the goal IMO :) cheers -- Torsten |
From: Torsten C. <tc...@ap...> - 2005-08-16 13:10:33
|
>>> >> And this would let to full >> coverage even without catching >> the exception? >> >> > > No, but it would document your belief that that catch block is > unnecessary, and if (or when) that belief if proved false in the > future it would show you right where the problem lies. Well, ok ...I see cheers -- Torsten |
From: Elliotte H. <el...@me...> - 2005-08-16 12:59:44
|
Torsten Curdt wrote: > Well, then I'll better move that code > out into a helper method and test > it once. Ok. No, you need to test the code as written. If you have to reorganize your code to test it something's wrong. In this case, the test would not be testing the real behavior of your app. > But how would you do that when you > catch an IOException reading from > a file system for example. How would > you simulate an IOException if you > cannot inject a mock stream/file. > You need to set up the situation so that the IOException is thrown. In this example, it's an InterruptedException you're trying to test, not an IOException though. launch a thread that will interrupt the tested thread while it's sleeping (tricky, but doable). You'll probably need to get a list of all the running threads and find the one that's sleeping. -- Elliotte Rusty Harold el...@me... XML in a Nutshell 3rd Edition Just Published! http://www.cafeconleche.org/books/xian3/ http://www.amazon.com/exec/obidos/ISBN=0596007647/cafeaulaitA/ref=nosim |
From: Seigel, J. <Jam...@av...> - 2005-08-16 12:58:03
|
U29ycnksIGRpZG4ndCBjb3B5IHRoaXMgdG8gdGhlIGxpc3Q6DQoNClRoZSBvdGhlciB0aGluZyB0 byBjb25zaWRlciBpcyBub3QgcmVxdWlyaW5nIDEwMCUgY292ZXJhZ2UgZnJvbSB5b3VyIHRlc3Rz Lg0KDQpKYW1lcy4NCg0KU2VlOiBodHRwOi8vd3d3LmtvaGwuY2EvYmxvZy9hcmNoaXZlcy8wMDAx MTQuaHRtbA0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogY29iZXJ0dXJhLWRl dmVsLWFkbWluQGxpc3RzLnNvdXJjZWZvcmdlLm5ldCBbbWFpbHRvOmNvYmVydHVyYS1kZXZlbC1h ZG1pbkBsaXN0cy5zb3VyY2Vmb3JnZS5uZXRdIE9uIEJlaGFsZiBPZiBFbGxpb3R0ZSBIYXJvbGQN ClNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAxNiwgMjAwNSA2OjAzIEFNDQpUbzogVG9yc3RlbiBDdXJk dA0KQ2M6IGNvYmVydHVyYS1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQNClN1YmplY3Q6IFJl OiBbQ29iZXJ0dXJhLWRldmVsXSBjb3ZlcmFnZSBvZiB0cnkvY2F0Y2gNCg0KVG9yc3RlbiBDdXJk dCB3cm90ZToNCj4gSGkgdGhlcmUsDQo+IA0KPiBJIGFtIHdvbmRlcmluZyBob3cgeW91IGd1eXMg dGhpbmsgZW1wdHkgdHJ5L2NhdGNoDQo+IHNob3VsZCBiZSBoYW5kbGVkLg0KPiANCj4gTGV0J3Mg YXNzdW1lIEkgaGF2ZQ0KPiANCj4gICB0cnkgew0KPiAgICAgVGhyZWFkLnNsZWVwKDEwMDApOw0K PiAgIH0gY2F0Y2goSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgew0KPiAgICAgOw0KPiAgIH0NCg0K DQpUaGF0IGJsb2NrIGlzIG5vdCBlbXB0eS4gSXQgY29udGFpbnMgYW4gZW1wdHkgc3RhdGVtZW50 LiBQb3NzaWJseSB0aGUgDQpjb21waWxlciB3aWxsIG9wdGltaXplIHRoaXMgYXdheS4gSSdtIG5v dCBzdXJlLg0KDQpZb3UgZGVmaW5pdGVseSBzaG91bGQgdGVzdCB0aGlzIGNhdGNoIGJsb2NrIGlm IHlvdSBjYW4uIFRoYXQgaXMsIHlvdSANCnNob3VsZCB3cml0ZSBhIHRlc3QgY2FzZSBpbiB3aGlj aCB0aGUgc2xlZXBpbmcgdGhyZWFkIGlzIGludGVycnVwdGVkIGFuZCANCnRoZW4gdmVyaWZ5IHRo YXQgZXZlcnl0aGluZyBzdGlsbCBiZWhhdmVzIGFzIGl0IHNob3VsZC4gSWYgeW91IHJlYWxseSAN CnRoaW5rIGl0J3MgaW1wb3NzaWJsZSBmb3IgdGhlIHRocmVhZCB0byBiZSBpbnRlcnJ1cHRlZCwg dGhlbiB5b3Ugc2hvdWxkIA0KcmV3cml0ZSB0aGUgY2F0Y2ggYmxvY2sgYWxvbmcgdGhlc2UgbGlu ZXM6DQoNCmNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsNCiAgICAgdGhyb3cgbmV3IFJ1 bnRpbWVFeGNlcHRpb24oZSwgIlNvbWV0aGluZyBpbXBvc3NpYmxlIGhhcHBlbmVkIikgOw0KfQ0K DQotLSANCu+7v0VsbGlvdHRlIFJ1c3R5IEhhcm9sZCAgZWxoYXJvQG1ldGFsYWIudW5jLmVkdQ0K WE1MIGluIGEgTnV0c2hlbGwgM3JkIEVkaXRpb24gSnVzdCBQdWJsaXNoZWQhDQpodHRwOi8vd3d3 LmNhZmVjb25sZWNoZS5vcmcvYm9va3MveGlhbjMvDQpodHRwOi8vd3d3LmFtYXpvbi5jb20vZXhl Yy9vYmlkb3MvSVNCTj0wNTk2MDA3NjQ3L2NhZmVhdWxhaXRBL3JlZj1ub3NpbQ0KDQoNCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClNGLk5l dCBlbWFpbCBpcyBTcG9uc29yZWQgYnkgdGhlIEJldHRlciBTb2Z0d2FyZSBDb25mZXJlbmNlICYg RVhQTw0KU2VwdGVtYmVyIDE5LTIyLCAyMDA1ICogU2FuIEZyYW5jaXNjbywgQ0EgKiBEZXZlbG9w bWVudCBMaWZlY3ljbGUgUHJhY3RpY2VzDQpBZ2lsZSAmIFBsYW4tRHJpdmVuIERldmVsb3BtZW50 ICogTWFuYWdpbmcgUHJvamVjdHMgJiBUZWFtcyAqIFRlc3RpbmcgJiBRQQ0KU2VjdXJpdHkgKiBQ cm9jZXNzIEltcHJvdmVtZW50ICYgTWVhc3VyZW1lbnQgKiBodHRwOi8vd3d3LnNxZS5jb20vYnNj ZTVzZg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCkNv YmVydHVyYS1kZXZlbCBtYWlsaW5nIGxpc3QNCkNvYmVydHVyYS1kZXZlbEBsaXN0cy5zb3VyY2Vm b3JnZS5uZXQNCmh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2Nv YmVydHVyYS1kZXZlbA0K |
From: Elliotte H. <el...@me...> - 2005-08-16 12:56:30
|
Torsten Curdt wrote: >> If you really think it's impossible for the thread to be interrupted, >> then you should rewrite the catch block along these lines: >> >> catch(InterruptedException e) { >> throw new RuntimeException(e, "Something impossible happened") ; >> } > > And this would let to full > coverage even without catching > the exception? > No, but it would document your belief that that catch block is unnecessary, and if (or when) that belief if proved false in the future it would show you right where the problem lies. -- Elliotte Rusty Harold el...@me... XML in a Nutshell 3rd Edition Just Published! http://www.cafeconleche.org/books/xian3/ http://www.amazon.com/exec/obidos/ISBN=0596007647/cafeaulaitA/ref=nosim |
From: Torsten C. <tc...@ap...> - 2005-08-16 12:44:05
|
> >> Hi there, >> I am wondering how you guys think empty try/catch >> should be handled. >> Let's assume I have >> try { >> Thread.sleep(1000); >> } catch(InterruptedException e) { >> ; >> } >> > > > That block is not empty. It contains an empty statement. Possibly > the compiler will optimize this away. I'm not sure. So what about try { Thread.sleep(1000); } catch(InterruptedException e) {} > You definitely should test this catch block if you can. Hmm... > That is, you should write a test case in which the sleeping thread > is interrupted and then verify that everything still behaves as it > should. Well, then I'll better move that code out into a helper method and test it once. Ok. But how would you do that when you catch an IOException reading from a file system for example. How would you simulate an IOException if you cannot inject a mock stream/file. Sorry ...this is becoming a bit OT. > If you really think it's impossible for the thread to be > interrupted, then you should rewrite the catch block along these > lines: > > catch(InterruptedException e) { > throw new RuntimeException(e, "Something impossible happened") ; > } And this would let to full coverage even without catching the exception? cheers -- Torsten |
From: Elliotte H. <el...@me...> - 2005-08-16 12:02:50
|
Torsten Curdt wrote: > Hi there, > > I am wondering how you guys think empty try/catch > should be handled. > > Let's assume I have > > try { > Thread.sleep(1000); > } catch(InterruptedException e) { > ; > } That block is not empty. It contains an empty statement. Possibly the compiler will optimize this away. I'm not sure. You definitely should test this catch block if you can. That is, you should write a test case in which the sleeping thread is interrupted and then verify that everything still behaves as it should. If you really think it's impossible for the thread to be interrupted, then you should rewrite the catch block along these lines: catch(InterruptedException e) { throw new RuntimeException(e, "Something impossible happened") ; } -- Elliotte Rusty Harold el...@me... XML in a Nutshell 3rd Edition Just Published! http://www.cafeconleche.org/books/xian3/ http://www.amazon.com/exec/obidos/ISBN=0596007647/cafeaulaitA/ref=nosim |
From: Grzegorz L. <ha...@gm...> - 2005-08-16 09:34:01
|
There is related RFE - https://sourceforge.net/tracker/index.php?func=3Ddetail&aid=3D1255210&group= _id=3D130558&atid=3D720018 Maybe we could create cobertura.jar as normal, and additionaly create cobertura-runtime.jar that can be optionally used. Not so nice solution, but users would be able to upgrade without problems.=20 cobertura-runtime.jar should not contain any references to dependend libraries - we could replace log4j with System.out, System.err for coveragedata package (grrrrrr...). Grzegorz On 6/17/05, Seigel, James <Jam...@av...> wrote: > I like having the one jar. I will have to have both around anyway. No > opinion on naming scheme. >=20 > Cheers > James. >=20 > -----Original Message----- > From: cob...@li... > [mailto:cob...@li...] On Behalf Of Mark > Doliner > Sent: Thursday, June 16, 2005 2:33 PM > To: cob...@li... > Subject: [Cobertura-devel] cobertura-runtime.jar? >=20 > Cobertura currently consists of one jar file, and this jar must be on > your classpath when instrumenting, running tests, and reporting. > However, when you actually run your tests, only one of the packages in > this jar is used, and the package only requires log4j. >=20 > How do people feel about creating a cobertura.jar and a > cobertura-runtime.jar, where cobertura-runtime.jar contains all the > classes in the package net.sourceforge.cobertura.coveragedata. And > cobertura.jar would contain everything else (ant tasks, instrumenting > code, reporting code, etc.) >=20 > The goal is to make it more clear that asm, ncss, jakarta-oro, etc. are > not required when running instrumenting code. I think this would help > avoid classpath conflicts with ASM. >=20 > Good idea? Bad idea? Suggestions for better names for the jars? > Should the jars include the version number in their name > ("cobertura-1.5.jar")? Should the runtime jar still use log4j, or > should we get rid of that dependency? >=20 > FYI, I'll be out of town from now until Sunday night. >=20 > -Mark >=20 >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dick > _______________________________________________ > Cobertura-devel mailing list > Cob...@li... > https://lists.sourceforge.net/lists/listinfo/cobertura-devel >=20 >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&opclick > _______________________________________________ > Cobertura-devel mailing list > Cob...@li... > https://lists.sourceforge.net/lists/listinfo/cobertura-devel > |
From: Torsten C. <tc...@ap...> - 2005-08-16 09:05:43
|
Hi there, I am wondering how you guys think empty try/catch should be handled. Let's assume I have try { Thread.sleep(1000); } catch(InterruptedException e) { ; } Now it seems I cannot get full coverage for this part of the code - although the exception handler is empty. cheers -- Torsten |
From: Mark E. T. <ma...@zz...> - 2005-08-15 20:24:42
|
Spectacular! Thanks, Mark=20 > -----Original Message----- > From: cob...@li...=20 > [mailto:cob...@li...] On=20 > Behalf Of Grzegorz Lukasik > Sent: Monday, August 15, 2005 1:16 PM > To: ma...@zz... > Cc: Mark Doliner; cob...@li... > Subject: Re: [Cobertura-devel] cobertrua-instrument ant task=20 > simple question... >=20 > Check environment variable ANT_OPTS. Some details here: >=20 > http://wiki.apache.org/ant/TheElementsOfAntStyle >=20 > Grzegorz >=20 > On 8/15/05, Mark Ethan Trostler <ma...@zz...> wrote: > > Yah I figured something like that but have no idea how to=20 > pass those options into ant itself - any ideas? > > This machine conveniently has 4GB RAM, dunno -Xms is=20 > necessary - guess I should test that. > > Regardless how the monkey do I pass java options into ant=20 > w/o using <jvmarg ..> within <java>??? > > I'll poke around at ant.apache.org I guess.. > > thanks, > > Mark > >=20 > > > -----Original Message----- > > > From: Mark Doliner [mailto:Mar...@sa...] > > > Sent: Monday, August 15, 2005 12:31 PM > > > To: ma...@zz...; cob...@li... > > > Subject: RE: [Cobertura-devel] cobertrua-instrument ant=20 > task simple=20 > > > question... > > > > > > The ant tasks exec a new JVM to do the instrumentation,=20 > reporting,=20 > > > etc. I believe the new JVM inherits the properties of the JVM=20 > > > running ant. So I THINK you can pass -Xmx2048m to ant=20 > somehow, and=20 > > > it will be carried over to the instrumentation. > > > > > > You probably wouldn't want to use -Xms2048 (because that=20 > would use=20 > > > 4GB of RAM?)... but -Xms shouldn't be absolutely=20 > necessary anyway,=20 > > > right? > > > > > > -Mark > > > > > > > -----Original Message----- > > > > From: cob...@li... > > > > [mailto:cob...@li...] On=20 > Behalf Of=20 > > > > ma...@zz... > > > > Sent: Monday, August 15, 2005 2:53 PM > > > > To: cob...@li... > > > > Subject: [Cobertura-devel] cobertrua-instrument ant task simple=20 > > > > question... > > > > > > > > When running cobertura to instrument from the command line > > > I need to > > > > use: > > > > -Xmx2048m -Xms2048m to javac (yes I have a very large > > > > codebase) - Otherwise I get OutOfMemory errors... > > > > Now I want to use the <cobertura-instrument> ant task... > > > > How do I specify that within the task? I'm stumped. > > > > <jvmarg ...> isn't supported. > > > > Can I set an environment varaible for java to=20 > automatically pick=20 > > > > up those args or something? > > > > Thanks! > > > > Mark > > > > HS^=E9=9A=8AXJ'u^=D7=ABJ > > > > zq=17<=E4=9E=A6=D7=A6mmNRjqkjw"=027zZ).'s'%xr=D8=9Cz = W=C3=AE+=DE=9C7zZ)1=DA=82)>#ylM=E6=A6=B17)@=04r#=C7=AC=DE=991=E6=AC=BAz{a= =7F=0C> > > 0o=DB=B1=C7=B9mzx%Bu=DE=96X(=1E~zwilq zlX)=DF=A3(mz > > > > > > > > >=20 > >=20 > >=20 > > ------------------------------------------------------- > > SF.Net email is Sponsored by the Better Software Conference & EXPO=20 > > September 19-22, 2005 * San Francisco, CA * Development Lifecycle=20 > > Practices Agile & Plan-Driven Development * Managing=20 > Projects & Teams=20 > > * Testing & QA Security * Process Improvement & Measurement *=20 > > http://www.sqe.com/bsce5sf=20 > > _______________________________________________ > > Cobertura-devel mailing list > > Cob...@li... > > https://lists.sourceforge.net/lists/listinfo/cobertura-devel > > > HS^=E9=9A=8AXJ'u=DE=BC^ J > =DE=89z=DF=B7q=17<=E4=9E=A6=D7=A6m m NRjqkjw"=02 |
From: Grzegorz L. <ha...@gm...> - 2005-08-15 20:16:12
|
Q2hlY2sgZW52aXJvbm1lbnQgdmFyaWFibGUgQU5UX09QVFMuIFNvbWUgZGV0YWlscyBoZXJlOgoK aHR0cDovL3dpa2kuYXBhY2hlLm9yZy9hbnQvVGhlRWxlbWVudHNPZkFudFN0eWxlCgpHcnplZ29y egoKT24gOC8xNS8wNSwgTWFyayBFdGhhbiBUcm9zdGxlciA8bWFya0B6em8uY29tPiB3cm90ZToK PiBZYWggSSBmaWd1cmVkIHNvbWV0aGluZyBsaWtlIHRoYXQgYnV0IGhhdmUgbm8gaWRlYSBob3cg dG8gcGFzcyB0aG9zZSBvcHRpb25zIGludG8gYW50IGl0c2VsZiAtIGFueSBpZGVhcz8KPiBUaGlz IG1hY2hpbmUgY29udmVuaWVudGx5IGhhcyA0R0IgUkFNLCBkdW5ubyAtWG1zIGlzIG5lY2Vzc2Fy eSAtIGd1ZXNzIEkgc2hvdWxkIHRlc3QgdGhhdC4KPiBSZWdhcmRsZXNzIGhvdyB0aGUgbW9ua2V5 IGRvIEkgcGFzcyBqYXZhIG9wdGlvbnMgaW50byBhbnQgdy9vIHVzaW5nIDxqdm1hcmcgLi4+IHdp dGhpbiA8amF2YT4/Pz8KPiBJJ2xsIHBva2UgYXJvdW5kIGF0IGFudC5hcGFjaGUub3JnIEkgZ3Vl c3MuLgo+ICAgICAgICAgdGhhbmtzLAo+ICAgICAgICAgICAgICAgICBNYXJrCj4gCj4gPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4gRnJvbTogTWFyayBEb2xpbmVyIFttYWlsdG86TWFy ay5Eb2xpbmVyQHNhcy5jb21dCj4gPiBTZW50OiBNb25kYXksIEF1Z3VzdCAxNSwgMjAwNSAxMjoz MSBQTQo+ID4gVG86IG1hcmtAenpvLmNvbTsgY29iZXJ0dXJhLWRldmVsQGxpc3RzLnNvdXJjZWZv cmdlLm5ldAo+ID4gU3ViamVjdDogUkU6IFtDb2JlcnR1cmEtZGV2ZWxdIGNvYmVydHJ1YS1pbnN0 cnVtZW50IGFudCB0YXNrCj4gPiBzaW1wbGUgcXVlc3Rpb24uLi4KPiA+Cj4gPiBUaGUgYW50IHRh c2tzIGV4ZWMgYSBuZXcgSlZNIHRvIGRvIHRoZSBpbnN0cnVtZW50YXRpb24sCj4gPiByZXBvcnRp bmcsIGV0Yy4gIEkgYmVsaWV2ZSB0aGUgbmV3IEpWTSBpbmhlcml0cyB0aGUKPiA+IHByb3BlcnRp ZXMgb2YgdGhlIEpWTSBydW5uaW5nIGFudC4gIFNvIEkgVEhJTksgeW91IGNhbiBwYXNzCj4gPiAt WG14MjA0OG0gdG8gYW50IHNvbWVob3csIGFuZCBpdCB3aWxsIGJlIGNhcnJpZWQgb3ZlciB0byB0 aGUKPiA+IGluc3RydW1lbnRhdGlvbi4KPiA+Cj4gPiBZb3UgcHJvYmFibHkgd291bGRuJ3Qgd2Fu dCB0byB1c2UgLVhtczIwNDggKGJlY2F1c2UgdGhhdAo+ID4gd291bGQgdXNlIDRHQiBvZiBSQU0/ KS4uLiBidXQgLVhtcyBzaG91bGRuJ3QgYmUgYWJzb2x1dGVseQo+ID4gbmVjZXNzYXJ5IGFueXdh eSwgcmlnaHQ/Cj4gPgo+ID4gLU1hcmsKPiA+Cj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tCj4gPiA+IEZyb206IGNvYmVydHVyYS1kZXZlbC1hZG1pbkBsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQKPiA+ID4gW21haWx0bzpjb2JlcnR1cmEtZGV2ZWwtYWRtaW5AbGlzdHMuc291cmNlZm9yZ2Uu bmV0XSBPbiBCZWhhbGYgT2YKPiA+ID4gbWFya0B6em8uY29tCj4gPiA+IFNlbnQ6IE1vbmRheSwg QXVndXN0IDE1LCAyMDA1IDI6NTMgUE0KPiA+ID4gVG86IGNvYmVydHVyYS1kZXZlbEBsaXN0cy5z b3VyY2Vmb3JnZS5uZXQKPiA+ID4gU3ViamVjdDogW0NvYmVydHVyYS1kZXZlbF0gY29iZXJ0cnVh LWluc3RydW1lbnQgYW50IHRhc2sgc2ltcGxlCj4gPiA+IHF1ZXN0aW9uLi4uCj4gPiA+Cj4gPiA+ IFdoZW4gcnVubmluZyBjb2JlcnR1cmEgdG8gaW5zdHJ1bWVudCBmcm9tIHRoZSBjb21tYW5kIGxp bmUKPiA+IEkgbmVlZCB0bwo+ID4gPiB1c2U6Cj4gPiA+IC1YbXgyMDQ4bSAtWG1zMjA0OG0gdG8g amF2YWMgKHllcyBJIGhhdmUgYSB2ZXJ5IGxhcmdlCj4gPiA+IGNvZGViYXNlKSAtIE90aGVyd2lz ZSBJIGdldCBPdXRPZk1lbW9yeSBlcnJvcnMuLi4KPiA+ID4gTm93IEkgd2FudCB0byB1c2UgdGhl IDxjb2JlcnR1cmEtaW5zdHJ1bWVudD4gYW50IHRhc2suLi4KPiA+ID4gSG93IGRvIEkgc3BlY2lm eSB0aGF0IHdpdGhpbiB0aGUgdGFzaz8gIEknbSBzdHVtcGVkLgo+ID4gPiA8anZtYXJnIC4uLj4g aXNuJ3Qgc3VwcG9ydGVkLgo+ID4gPiBDYW4gSSBzZXQgYW4gZW52aXJvbm1lbnQgdmFyYWlibGUg Zm9yIGphdmEgdG8gYXV0b21hdGljYWxseSBwaWNrIHVwCj4gPiA+IHRob3NlIGFyZ3Mgb3Igc29t ZXRoaW5nPwo+ID4gPiBUaGFua3MhCj4gPiA+ICAgICBNYXJrCj4gPiA+IEhTXumailhKJ3Ve16tK Cj4gPiA+IHpxFzzknqbXpm1tTlJqcWtqdyICN3paKS4ncycleHLYnHogV8OuK96cN3paKTHagik+ I3lsTeamsTcpQARyI8es3pkx5qy6enthfww+ID4gMG/bsce5bXp4JUJ13pZYKB5+endpbHEgemxY Kd+jKG16Cj4gPiA+Cj4gPgo+IAo+IAo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBTRi5OZXQgZW1haWwgaXMgU3BvbnNvcmVkIGJ5 IHRoZSBCZXR0ZXIgU29mdHdhcmUgQ29uZmVyZW5jZSAmIEVYUE8KPiBTZXB0ZW1iZXIgMTktMjIs IDIwMDUgKiBTYW4gRnJhbmNpc2NvLCBDQSAqIERldmVsb3BtZW50IExpZmVjeWNsZSBQcmFjdGlj ZXMKPiBBZ2lsZSAmIFBsYW4tRHJpdmVuIERldmVsb3BtZW50ICogTWFuYWdpbmcgUHJvamVjdHMg JiBUZWFtcyAqIFRlc3RpbmcgJiBRQQo+IFNlY3VyaXR5ICogUHJvY2VzcyBJbXByb3ZlbWVudCAm IE1lYXN1cmVtZW50ICogaHR0cDovL3d3dy5zcWUuY29tL2JzY2U1c2YKPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IENvYmVydHVyYS1kZXZlbCBtYWls aW5nIGxpc3QKPiBDb2JlcnR1cmEtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Cj4gaHR0cHM6 Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vY29iZXJ0dXJhLWRldmVsCj4K |
From: Mark E. T. <ma...@zz...> - 2005-08-15 20:08:37
|
Yah I figured something like that but have no idea how to pass those = options into ant itself - any ideas? This machine conveniently has 4GB RAM, dunno -Xms is necessary - guess I = should test that. Regardless how the monkey do I pass java options into ant w/o using = <jvmarg ..> within <java>??? I'll poke around at ant.apache.org I guess.. thanks, Mark=20 > -----Original Message----- > From: Mark Doliner [mailto:Mar...@sa...]=20 > Sent: Monday, August 15, 2005 12:31 PM > To: ma...@zz...; cob...@li... > Subject: RE: [Cobertura-devel] cobertrua-instrument ant task=20 > simple question... >=20 > The ant tasks exec a new JVM to do the instrumentation,=20 > reporting, etc. I believe the new JVM inherits the=20 > properties of the JVM running ant. So I THINK you can pass=20 > -Xmx2048m to ant somehow, and it will be carried over to the=20 > instrumentation. >=20 > You probably wouldn't want to use -Xms2048 (because that=20 > would use 4GB of RAM?)... but -Xms shouldn't be absolutely=20 > necessary anyway, right? >=20 > -Mark=20 >=20 > > -----Original Message----- > > From: cob...@li... > > [mailto:cob...@li...] On Behalf Of=20 > > ma...@zz... > > Sent: Monday, August 15, 2005 2:53 PM > > To: cob...@li... > > Subject: [Cobertura-devel] cobertrua-instrument ant task simple=20 > > question... > >=20 > > When running cobertura to instrument from the command line=20 > I need to=20 > > use: > > -Xmx2048m -Xms2048m to javac (yes I have a very large > > codebase) - Otherwise I get OutOfMemory errors... > > Now I want to use the <cobertura-instrument> ant task... > > How do I specify that within the task? I=E2=80=99m stumped. > > <jvmarg ...> isn't supported. > > Can I set an environment varaible for java to automatically pick up=20 > > those args or something? > > Thanks! > > Mark > > HS^=E9=9A=8AXJ'u^=D7=ABJ > > zq=17<=E4=9E=A6=D7=A6mmNRjqkjw"=027zZ).'s'%xr=D8=9Cz = W=C3=AE+=DE=9C7zZ)1=DA=82)>#ylM=E6=A6=B17)@=04r#=C7=AC=DE=991=E6=AC=BAz{a= =7F=0C> > 0o=DB=B1=C7=B9m=ED=BA=B6zx%Bu=DE=96X(=1E~zwilq = zlX)=DF=A3(m=ED=BA=B6z > >=20 >=20 |
From: Grzegorz L. <ha...@gm...> - 2005-08-15 19:55:14
|
> Instead of > logger.fatal( "'--commandsfile' specified as last option, ignoring.")= ; > Would it be better to throw an exception and have Cobertura exit with an = error message? =20 OK, changed. > If you really want to format some source, it may be a good idea to only f= ormat the files you've made changes to, instead of formating all files. Or= , I dunno, feel free to change the Jalopy file so that it formats things cl= oser to what's in CVS. When I saw jalopy inside build.xml I thought that all code should be formatted exactly this way. I think i will just set in Eclipse formatting simillar to the code inside CVS for now. Greetings, Grzegorz |
From: Mark D. <Mar...@sa...> - 2005-08-15 19:34:06
|
VGhlIGFudCB0YXNrcyBleGVjIGEgbmV3IEpWTSB0byBkbyB0aGUgaW5zdHJ1bWVudGF0aW9uLCBy ZXBvcnRpbmcsIGV0Yy4gIEkgYmVsaWV2ZSB0aGUgbmV3IEpWTSBpbmhlcml0cyB0aGUgcHJvcGVy dGllcyBvZiB0aGUgSlZNIHJ1bm5pbmcgYW50LiAgU28gSSBUSElOSyB5b3UgY2FuIHBhc3MgLVht eDIwNDhtIHRvIGFudCBzb21laG93LCBhbmQgaXQgd2lsbCBiZSBjYXJyaWVkIG92ZXIgdG8gdGhl IGluc3RydW1lbnRhdGlvbi4NCg0KWW91IHByb2JhYmx5IHdvdWxkbid0IHdhbnQgdG8gdXNlIC1Y bXMyMDQ4IChiZWNhdXNlIHRoYXQgd291bGQgdXNlIDRHQiBvZiBSQU0/KS4uLiBidXQgLVhtcyBz aG91bGRuJ3QgYmUgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW55d2F5LCByaWdodD8NCg0KLU1hcmsg DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogY29iZXJ0dXJhLWRldmVs LWFkbWluQGxpc3RzLnNvdXJjZWZvcmdlLm5ldCANCj4gW21haWx0bzpjb2JlcnR1cmEtZGV2ZWwt YWRtaW5AbGlzdHMuc291cmNlZm9yZ2UubmV0XSBPbiANCj4gQmVoYWxmIE9mIG1hcmtAenpvLmNv bQ0KPiBTZW50OiBNb25kYXksIEF1Z3VzdCAxNSwgMjAwNSAyOjUzIFBNDQo+IFRvOiBjb2JlcnR1 cmEtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0DQo+IFN1YmplY3Q6IFtDb2JlcnR1cmEtZGV2 ZWxdIGNvYmVydHJ1YS1pbnN0cnVtZW50IGFudCB0YXNrIA0KPiBzaW1wbGUgcXVlc3Rpb24uLi4N Cj4gDQo+IFdoZW4gcnVubmluZyBjb2JlcnR1cmEgdG8gaW5zdHJ1bWVudCBmcm9tIHRoZSBjb21t YW5kIGxpbmUgSQ0KPiBuZWVkIHRvIHVzZToNCj4gLVhteDIwNDhtIC1YbXMyMDQ4bSB0byBqYXZh YyAoeWVzIEkgaGF2ZSBhIHZlcnkgbGFyZ2UNCj4gY29kZWJhc2UpIC0gT3RoZXJ3aXNlIEkgZ2V0 IE91dE9mTWVtb3J5IGVycm9ycy4uLg0KPiBOb3cgSSB3YW50IHRvIHVzZSB0aGUgPGNvYmVydHVy YS1pbnN0cnVtZW50PiBhbnQgdGFzay4uLg0KPiBIb3cgZG8gSSBzcGVjaWZ5IHRoYXQgd2l0aGlu IHRoZSB0YXNrPyAgSeKAmW0gc3R1bXBlZC4NCj4gPGp2bWFyZyAuLi4+IGlzbid0IHN1cHBvcnRl ZC4NCj4gQ2FuIEkgc2V0IGFuIGVudmlyb25tZW50IHZhcmFpYmxlIGZvciBqYXZhIHRvIGF1dG9t YXRpY2FsbHkNCj4gcGljayB1cCB0aG9zZSBhcmdzIG9yIHNvbWV0aGluZz8NCj4gVGhhbmtzIQ0K PiAJTWFyaw0KPiBIU17pmopYSid1XterSg0KPiB6cRc85J6m16ZtbU5SanFranciAjd6WikuJ3Mn JXhy2Jx6IFfDrivenDd6Wikx2oIpPiN5bE3mprE3KUAEciPHrN6ZMeasunp7YX8MPiAwb9uxx7lt 7bq2englQnXellgoHn56d2lscSB6bFgp36Mobe26tnoNCj4gDQo= |
From: Grzegorz L. <ha...@gm...> - 2005-08-15 19:15:29
|
OK, Done Grzegorz On 8/15/05, Mark Doliner <Mar...@sa...> wrote: > Yeah, I think they may have changed something in recent versions of ant (= 1.6.2 and newer?) so output shows up as coming from the name of the task ra= ther than "[java]." Feel free to remove the comments > -Mark >=20 > > -----Original Message----- > > From: cob...@li... > > [mailto:cob...@li...] On > > Behalf Of Grzegorz Lukasik > > Sent: Monday, August 15, 2005 1:51 PM > > To: cobertura-devel > > Subject: [Cobertura-devel] Small cleanup, TODO: Do something > > here so that we can set System.in and System.out... > > > > In ReportTask, MergeTask, InstrumentTask there are comments: > > > > /** > > * TODO: Do something here so that we can set > > System.in and System.out > > * on getJava() to the one we're using now. So > > that when instrumentation > > * calls System.out, it will show up as > > "[instrument] doing stuff" > > * instead of "[java] doing stuff" in the ant output. > > */ > > > > But when I run ant there _is_ [cobertura-instrument] instead of > > [java]. I will remove this comments if there are no objections. > > > > Grzegorz > |
From: <ma...@zz...> - 2005-08-15 18:53:30
|
V2hlbiBydW5uaW5nIGNvYmVydHVyYSB0byBpbnN0cnVtZW50IGZyb20gdGhlIGNvbW1hbmQg bGluZSBJDQpuZWVkIHRvIHVzZToNCi1YbXgyMDQ4bSAtWG1zMjA0OG0gdG8gamF2YWMgKHll cyBJIGhhdmUgYSB2ZXJ5IGxhcmdlDQpjb2RlYmFzZSkgLSBPdGhlcndpc2UgSSBnZXQgT3V0 T2ZNZW1vcnkgZXJyb3JzLi4uDQpOb3cgSSB3YW50IHRvIHVzZSB0aGUgPGNvYmVydHVyYS1p bnN0cnVtZW50PiBhbnQgdGFzay4uLg0KSG93IGRvIEkgc3BlY2lmeSB0aGF0IHdpdGhpbiB0 aGUgdGFzaz8gIEnigJltIHN0dW1wZWQuDQo8anZtYXJnIC4uLj4gaXNuJ3Qgc3VwcG9ydGVk Lg0KQ2FuIEkgc2V0IGFuIGVudmlyb25tZW50IHZhcmFpYmxlIGZvciBqYXZhIHRvIGF1dG9t YXRpY2FsbHkNCnBpY2sgdXAgdGhvc2UgYXJncyBvciBzb21ldGhpbmc/DQpUaGFua3MhDQoJ TWFyaw0K |
From: Mark D. <Mar...@sa...> - 2005-08-15 18:11:34
|
FYI I changed this list to member-posting only. -Mark=20 > -----Original Message----- > From: cob...@li...=20 > [mailto:cob...@li...] On=20 > Behalf Of Jun Wang > Sent: Sunday, August 14, 2005 6:36 AM > To: cob...@li... > Subject: [Cobertura-devel] Large quantity Telecom products=20 > with low price > Importance: High >=20 > We supply large quantity low price Telecom products: Fiber=20 > optic jumper, UTP Cat5e cable, patch cable, USB cable, Phone=20 > cable and various Telecom components. Welcome OEM order and=20 > Custom cable. >=20 > Details pay a visit to: www.sgetek.com. Download our=20 > catalogue from: www.sgetek.com/order.asp. >=20 > Please contact with us by: pre...@12... for our newest=20 > price list. >=20 > Jun Wang > SGETEK SHANGHAI CO., LIMITED > SGETEK UK CO., LIMITED > TEL:+86 21 67820784 > FAX:+86 21 67820791 > ---------------------------------------------------------------------- > If no use for you send a "No Thanks" mail to:=20 > ca...@16..., your mail will be deleted from our list=20 > within 2 working days. |
From: Mark D. <Mar...@sa...> - 2005-08-15 18:06:02
|
I like this cleanup--very nice. Instead of logger.fatal( "'--commandsfile' specified as last option, = ignoring."); Would it be better to throw an exception and have Cobertura exit with an = error message? It seems like the immediate feedback would be more = useful to a user who happens to try passing in the --commandsfile = argument without specifying a file. I committed the file etc/jalopy.xml to CVS. I've actually been using = Eclipse to format my source, and the Eclipse rules I'm using are = slightly different than the Jalopy rules, so if you run Jalopy over = everything there will be a lot of changes. If you really want to format some source, it may be a good idea to only = format the files you've made changes to, instead of formating all files. = Or, I dunno, feel free to change the Jalopy file so that it formats = things closer to what's in CVS. -Mark > -----Original Message----- > From: cob...@li...=20 > [mailto:cob...@li...] On=20 > Behalf Of Grzegorz Lukasik > Sent: Saturday, August 13, 2005 9:17 AM > To: cobertura-devel > Subject: [Cobertura-devel] Patch: CommandLineBuilder added >=20 > Hi >=20 > I have extracted support for long command lines into new class. It > puts common parts of code to one place, and allows to test it better. >=20 > Mark, do you have your version of jalopy.xml so that i can=20 > format new code? >=20 > Grzegorz >=20 |
From: Mark D. <Mar...@sa...> - 2005-08-15 17:55:34
|
Yeah, I think they may have changed something in recent versions of ant = (1.6.2 and newer?) so output shows up as coming from the name of the = task rather than "[java]." Feel free to remove the comments -Mark=20 > -----Original Message----- > From: cob...@li...=20 > [mailto:cob...@li...] On=20 > Behalf Of Grzegorz Lukasik > Sent: Monday, August 15, 2005 1:51 PM > To: cobertura-devel > Subject: [Cobertura-devel] Small cleanup, TODO: Do something=20 > here so that we can set System.in and System.out... >=20 > In ReportTask, MergeTask, InstrumentTask there are comments: >=20 > /** > * TODO: Do something here so that we can set=20 > System.in and System.out > * on getJava() to the one we're using now. So=20 > that when instrumentation > * calls System.out, it will show up as=20 > "[instrument] doing stuff" > * instead of "[java] doing stuff" in the ant output. > */ >=20 > But when I run ant there _is_ [cobertura-instrument] instead of > [java]. I will remove this comments if there are no objections. >=20 > Grzegorz |
From: Grzegorz L. <ha...@gm...> - 2005-08-15 17:51:29
|
In ReportTask, MergeTask, InstrumentTask there are comments: =09=09/** =09=09 * TODO: Do something here so that we can set System.in and System.ou= t =09=09 * on getJava() to the one we're using now. So that when instrumentat= ion =09=09 * calls System.out, it will show up as "[instrument] doing stuff" =09=09 * instead of "[java] doing stuff" in the ant output. =09=09 */ But when I run ant there _is_ [cobertura-instrument] instead of [java]. I will remove this comments if there are no objections. Grzegorz |
From: Mark D. <Mar...@sa...> - 2005-08-15 16:32:31
|
Done, thanks. It took me a few tries to figure out how to get = CruiseControl to call ant and pass in that option. The CC ant call = doesn't let you pass in parameters, so I had to create a small script = that basically does "ant-1.3.1 -lib xalan.jar $*" -Mark=20 > -----Original Message----- > From: cob...@li...=20 > [mailto:cob...@li...] On=20 > Behalf Of Grzegorz Lukasik > Sent: Saturday, August 13, 2005 7:01 AM > To: cobertura-devel > Subject: [Cobertura-devel] JDK 1.3 support >=20 > Mark, >=20 > I have just tested, and if you add option "-lib > lib\xalan\2.6.0\xalan.jar" when running ant's build, then there are no > problems with JDK 1.3. The only problem without this opiton is when > generating reports using junitreport, so it should be no problem. > Please add this option to CruiseControl scripts for JDK 1.3. >=20 > Grzegorz |
From: Mark D. <Mar...@sa...> - 2005-08-15 15:28:09
|
No, it's not possible to run two tests with the same data file in = parallel. Cobertura reads the data file in once when the test starts, = and writes it back out once when the JVM exits. If the tests are = running in different JVMs, then the data file will only contain data = from whichever JVM exited last. If the tests are running in the same = JVM, but different threads, then you might see threading problems in = some of the Cobertura classes, as it probably isn't threadsafe right = now. Yes, you can merge two data files to a new one. This probably still = needs a little work, but it SHOULD work. Currently the only = documentation is near the bottom of = http://cobertura.sourceforge.net/introduction.html -Mark > -----Original Message----- > From: cob...@li...=20 > [mailto:cob...@li...] On=20 > Behalf Of Jakub Neubauer > Sent: Monday, August 15, 2005 11:19 AM > To: cob...@li... > Subject: [Cobertura-devel] running two tests simultaneously >=20 > Hello, > I would like to ask, if Cobertura allows to run two tests=20 > with the same data file in parallel. Or, if not, is it=20 > possible to merge two data files to new one to be able=20 > generate one report from two data files? Thank you for your time >=20 > Jakub Neubauer |
From: Jakub N. <j.n...@cz...> - 2005-08-15 15:16:52
|
Hello, I would like to ask, if Cobertura allows to run two tests with the same = data file in parallel. Or, if not, is it possible to merge two data = files to new one to be able generate one report from two data files? = Thank you for your time Jakub Neubauer |
From: Jun W. <www...@ya...> - 2005-08-14 10:35:52
|
We supply large quantity low price Telecom products: Fiber optic jumper, UTP Cat5e cable, patch cable, USB cable, Phone cable and various Telecom components. Welcome OEM order and Custom cable. Details pay a visit to: www.sgetek.com. Download our catalogue from: www.sgetek.com/order.asp. Please contact with us by: pre...@12... for our newest price list. Jun Wang SGETEK SHANGHAI CO., LIMITED SGETEK UK CO., LIMITED TEL:+86 21 67820784 FAX:+86 21 67820791 ---------------------------------------------------------------------- If no use for you send a "No Thanks" mail to: ca...@16..., your mail will be deleted from our list within 2 working days. |