You can subscribe to this list here.
2007 |
Jan
|
Feb
(3) |
Mar
(18) |
Apr
(39) |
May
(15) |
Jun
(12) |
Jul
(3) |
Aug
(23) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(21) |
Feb
(23) |
Mar
(33) |
Apr
(8) |
May
(1) |
Jun
(22) |
Jul
|
Aug
(1) |
Sep
(1) |
Oct
(6) |
Nov
|
Dec
(11) |
2009 |
Jan
(5) |
Feb
|
Mar
(2) |
Apr
(24) |
May
(36) |
Jun
(18) |
Jul
(2) |
Aug
(3) |
Sep
(9) |
Oct
(3) |
Nov
(1) |
Dec
|
2010 |
Jan
(5) |
Feb
(3) |
Mar
|
Apr
(15) |
May
(24) |
Jun
(11) |
Jul
(8) |
Aug
(34) |
Sep
(42) |
Oct
|
Nov
|
Dec
|
2011 |
Jan
(13) |
Feb
(32) |
Mar
(35) |
Apr
(31) |
May
(33) |
Jun
(30) |
Jul
(32) |
Aug
(31) |
Sep
(30) |
Oct
(31) |
Nov
(32) |
Dec
(31) |
2012 |
Jan
(35) |
Feb
(31) |
Mar
(31) |
Apr
(30) |
May
(31) |
Jun
(34) |
Jul
(23) |
Aug
(30) |
Sep
(30) |
Oct
(29) |
Nov
(30) |
Dec
(32) |
2013 |
Jan
(25) |
Feb
(39) |
Mar
(1) |
Apr
(18) |
May
(1) |
Jun
|
Jul
(1) |
Aug
(20) |
Sep
(41) |
Oct
(32) |
Nov
(9) |
Dec
(31) |
2014 |
Jan
(31) |
Feb
(30) |
Mar
(34) |
Apr
(60) |
May
(31) |
Jun
(28) |
Jul
(32) |
Aug
(28) |
Sep
(26) |
Oct
(32) |
Nov
(43) |
Dec
(115) |
2015 |
Jan
(106) |
Feb
(101) |
Mar
(51) |
Apr
(32) |
May
(63) |
Jun
(18) |
Jul
|
Aug
(18) |
Sep
|
Oct
(1) |
Nov
(84) |
Dec
(63) |
2016 |
Jan
(26) |
Feb
(17) |
Mar
(104) |
Apr
(30) |
May
(6) |
Jun
(30) |
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
(48) |
Dec
(22) |
2017 |
Jan
(15) |
Feb
(29) |
Mar
(43) |
Apr
(29) |
May
(25) |
Jun
(28) |
Jul
(62) |
Aug
(35) |
Sep
(35) |
Oct
(72) |
Nov
(10) |
Dec
(4) |
2018 |
Jan
(7) |
Feb
(4) |
Mar
|
Apr
(46) |
May
(20) |
Jun
(12) |
Jul
(9) |
Aug
(42) |
Sep
(4) |
Oct
(17) |
Nov
(32) |
Dec
(31) |
2019 |
Jan
(21) |
Feb
(14) |
Mar
|
Apr
(74) |
May
(25) |
Jun
(43) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
|
Dec
(10) |
2020 |
Jan
(1) |
Feb
|
Mar
(26) |
Apr
(8) |
May
(62) |
Jun
(4) |
Jul
(25) |
Aug
|
Sep
(21) |
Oct
(24) |
Nov
(26) |
Dec
(9) |
2021 |
Jan
|
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(11) |
Nov
(1) |
Dec
(12) |
2022 |
Jan
(47) |
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(14) |
2023 |
Jan
(3) |
Feb
|
Mar
(60) |
Apr
(9) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2024 |
Jan
(5) |
Feb
|
Mar
|
Apr
(10) |
May
(1) |
Jun
|
Jul
|
Aug
(17) |
Sep
(2) |
Oct
|
Nov
|
Dec
(1) |
2025 |
Jan
|
Feb
|
Mar
(88) |
Apr
(64) |
May
(47) |
Jun
(20) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <bo...@us...> - 2009-05-18 15:40:17
|
Revision: 320 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=320&view=rev Author: bodewig Date: 2009-05-18 15:40:13 +0000 (Mon, 18 May 2009) Log Message: ----------- rename XMLUnitRuntimeException to XMLUnitException Modified Paths: -------------- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/ConfigurationException.java Added Paths: ----------- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitException.java Removed Paths: ------------- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitRuntimeException.java Modified: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2009-05-12 12:31:40 UTC (rev 319) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2009-05-18 15:40:13 UTC (rev 320) @@ -32,7 +32,7 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamSource; import net.sf.xmlunit.exceptions.ConfigurationException; -import net.sf.xmlunit.exceptions.XMLUnitRuntimeException; +import net.sf.xmlunit.exceptions.XMLUnitException; import org.w3c.dom.Document; public class Input { @@ -117,7 +117,7 @@ } } } catch (IOException ex) { - throw new XMLUnitRuntimeException(ex); + throw new XMLUnitException(ex); } } @@ -188,7 +188,7 @@ } catch (javax.xml.transform.TransformerConfigurationException e) { throw new ConfigurationException(e); } catch (javax.xml.transform.TransformerException e) { - throw new XMLUnitRuntimeException(e); + throw new XMLUnitException(e); } } } Modified: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/ConfigurationException.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/ConfigurationException.java 2009-05-12 12:31:40 UTC (rev 319) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/ConfigurationException.java 2009-05-18 15:40:13 UTC (rev 320) @@ -17,7 +17,7 @@ * Exception thrown when anything inside JAXP throws a * *ConfigurationException. */ -public class ConfigurationException extends XMLUnitRuntimeException { +public class ConfigurationException extends XMLUnitException { public ConfigurationException(Throwable cause) { super(cause); } Copied: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitException.java (from rev 319, trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitRuntimeException.java) =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitException.java (rev 0) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitException.java 2009-05-18 15:40:13 UTC (rev 320) @@ -0,0 +1,47 @@ +/* + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +package net.sf.xmlunit.exceptions; + +/** + * Base class of any Exception thrown within XMLUnit. + */ +public class XMLUnitException extends RuntimeException { + /** + * Inititializes the exeption. + * + * @param message the detail message + * @param cause the root cause of the exception + */ + public XMLUnitException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Inititializes an exeption without cause. + * + * @param message the detail message + */ + public XMLUnitException(String message) { + this(message, null); + } + + /** + * Inititializes an exeption using the wrapped exception's message. + * + * @param message the detail message + */ + public XMLUnitException(Throwable cause) { + this(cause != null ? cause.getMessage() : null, cause); + } +} \ No newline at end of file Property changes on: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitException.java ___________________________________________________________________ Added: svn:mergeinfo + Added: svn:eol-style + native Deleted: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitRuntimeException.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitRuntimeException.java 2009-05-12 12:31:40 UTC (rev 319) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitRuntimeException.java 2009-05-18 15:40:13 UTC (rev 320) @@ -1,47 +0,0 @@ -/* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -package net.sf.xmlunit.exceptions; - -/** - * Base class of any Exception thrown within XMLUnit. - */ -public class XMLUnitRuntimeException extends RuntimeException { - /** - * Inititializes the exeption. - * - * @param message the detail message - * @param cause the root cause of the exception - */ - public XMLUnitRuntimeException(String message, Throwable cause) { - super(message, cause); - } - - /** - * Inititializes an exeption without cause. - * - * @param message the detail message - */ - public XMLUnitRuntimeException(String message) { - this(message, null); - } - - /** - * Inititializes an exeption using the wrapped exception's message. - * - * @param message the detail message - */ - public XMLUnitRuntimeException(Throwable cause) { - this(cause != null ? cause.getMessage() : null, cause); - } -} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: SourceForge.net <no...@so...> - 2009-05-15 02:20:27
|
Bugs item #1952324, was opened at 2008-04-26 15:45 Message generated for change (Comment added) made by sf-robot You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=377768&aid=1952324&group_id=23187 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: .NET 0.3.1 >Status: Closed Resolution: Wont Fix Priority: 5 Private: No Submitted By: Steve Wagner (ciroque) Assigned to: Nobody/Anonymous (nobody) Summary: Specific Version reference to nunit.framework.dll Initial Comment: Apparently the library was compiled such that it requires version 2.4.6 of the NUnit Framework assembly. We have upgraded to 2.4.7 and rolling back is not a viable option. While I can rebuild the sasembly it would get quite tedious to do that with every upgrade of the library. Thanks! ---------------------------------------------------------------------- >Comment By: SourceForge Robot (sf-robot) Date: 2009-05-15 02:20 Message: This Tracker item was closed automatically by the system. It was previously set to a Pending status, and the original submitter did not respond within 14 days (the time period specified by the administrator of this Tracker). ---------------------------------------------------------------------- Comment By: Stefan Bodewig (bodewig) Date: 2009-04-30 14:25 Message: As long as NUnit has a strong name, there isn't much we can do - except for telling people to compile their own version of XMLUnit. XMLUnit 0.4 is compiled against 2.4.8. ---------------------------------------------------------------------- Comment By: Stefan Bodewig (bodewig) Date: 2008-06-05 11:20 Message: Logged In: YES user_id=113148 Originator: NO XMLUnit 0.3.1 has been compiled against NUnit 2.4.6 and we get the "hard reference" to it because NUnit 2.4.x is strongly named (2.2.x hasn't been that#s why XMLUnit 0.3 never showed the same symptoms). In theory a binding redirect should work, in practice it doesn't work for me. See http://sourceforge.net/mailarchive/forum.php?thread_name=y1u4p8garz2.fsf%40v30161.1blu.de&forum_name=nunit-users ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=377768&aid=1952324&group_id=23187 |
From: <bo...@us...> - 2009-05-12 12:31:44
|
Revision: 319 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=319&view=rev Author: bodewig Date: 2009-05-12 12:31:40 +0000 (Tue, 12 May 2009) Log Message: ----------- preference for stronger algorithms Modified Paths: -------------- trunk/xmlunit/KEYS Modified: trunk/xmlunit/KEYS =================================================================== --- trunk/xmlunit/KEYS 2009-05-12 10:56:37 UTC (rev 318) +++ trunk/xmlunit/KEYS 2009-05-12 12:31:40 UTC (rev 319) @@ -192,393 +192,393 @@ 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 -FbNcFS3g -=LIse +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 +b0zPjKjGuiwdKSnkFbNcFS3g +=UxMc -----END PGP PUBLIC KEY BLOCK----- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-05-12 10:56:50
|
Revision: 318 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=318&view=rev Author: bodewig Date: 2009-05-12 10:56:37 +0000 (Tue, 12 May 2009) Log Message: ----------- whitespace Modified Paths: -------------- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/ConfigurationException.java trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitRuntimeException.java trunk/xmlunit/src/main/net-core/ISource.cs trunk/xmlunit/src/main/net-core/builder/Input.cs trunk/xmlunit/src/main/net-core/input/AbstractSource.cs trunk/xmlunit/src/main/net-core/input/DOMSource.cs trunk/xmlunit/src/main/net-core/input/ReaderSource.cs trunk/xmlunit/src/main/net-core/input/StreamSource.cs Modified: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2009-05-12 10:46:49 UTC (rev 317) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2009-05-12 10:56:37 UTC (rev 318) @@ -1,15 +1,15 @@ /* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ package net.sf.xmlunit.builder; @@ -132,7 +132,7 @@ public static Builder fromURI(String uri) { try { - return fromURI(new URI(uri)); + return fromURI(new URI(uri)); } catch (java.net.URISyntaxException ex) { throw new IllegalArgumentException("uri " + uri + " is not an URI", ex); Modified: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/ConfigurationException.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/ConfigurationException.java 2009-05-12 10:46:49 UTC (rev 317) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/ConfigurationException.java 2009-05-12 10:56:37 UTC (rev 318) @@ -1,15 +1,15 @@ /* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ package net.sf.xmlunit.exceptions; Modified: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitRuntimeException.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitRuntimeException.java 2009-05-12 10:46:49 UTC (rev 317) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitRuntimeException.java 2009-05-12 10:56:37 UTC (rev 318) @@ -1,15 +1,15 @@ /* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ package net.sf.xmlunit.exceptions; @@ -41,7 +41,7 @@ * * @param message the detail message */ - public XMLUnitRuntimeException(Throwable cause) { + public XMLUnitRuntimeException(Throwable cause) { this(cause != null ? cause.getMessage() : null, cause); } } \ No newline at end of file Modified: trunk/xmlunit/src/main/net-core/ISource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/ISource.cs 2009-05-12 10:46:49 UTC (rev 317) +++ trunk/xmlunit/src/main/net-core/ISource.cs 2009-05-12 10:56:37 UTC (rev 318) @@ -1,15 +1,15 @@ /* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ using System.Xml; Modified: trunk/xmlunit/src/main/net-core/builder/Input.cs =================================================================== --- trunk/xmlunit/src/main/net-core/builder/Input.cs 2009-05-12 10:46:49 UTC (rev 317) +++ trunk/xmlunit/src/main/net-core/builder/Input.cs 2009-05-12 10:56:37 UTC (rev 318) @@ -1,15 +1,15 @@ /* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ using System.IO; using System.Xml; Modified: trunk/xmlunit/src/main/net-core/input/AbstractSource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/input/AbstractSource.cs 2009-05-12 10:46:49 UTC (rev 317) +++ trunk/xmlunit/src/main/net-core/input/AbstractSource.cs 2009-05-12 10:56:37 UTC (rev 318) @@ -1,15 +1,15 @@ /* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ using System.Xml; Modified: trunk/xmlunit/src/main/net-core/input/DOMSource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/input/DOMSource.cs 2009-05-12 10:46:49 UTC (rev 317) +++ trunk/xmlunit/src/main/net-core/input/DOMSource.cs 2009-05-12 10:56:37 UTC (rev 318) @@ -1,15 +1,15 @@ /* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ using System.Xml; Modified: trunk/xmlunit/src/main/net-core/input/ReaderSource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/input/ReaderSource.cs 2009-05-12 10:46:49 UTC (rev 317) +++ trunk/xmlunit/src/main/net-core/input/ReaderSource.cs 2009-05-12 10:56:37 UTC (rev 318) @@ -1,15 +1,15 @@ /* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ using System.Xml; Modified: trunk/xmlunit/src/main/net-core/input/StreamSource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/input/StreamSource.cs 2009-05-12 10:46:49 UTC (rev 317) +++ trunk/xmlunit/src/main/net-core/input/StreamSource.cs 2009-05-12 10:56:37 UTC (rev 318) @@ -1,15 +1,15 @@ /* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ using System.IO; using System.Xml; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-05-12 10:46:57
|
Revision: 317 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=317&view=rev Author: bodewig Date: 2009-05-12 10:46:49 +0000 (Tue, 12 May 2009) Log Message: ----------- fix eol-style Modified Paths: -------------- trunk/xmlunit/src/main/net-core/ISource.cs trunk/xmlunit/src/main/net-core/builder/Input.cs trunk/xmlunit/src/main/net-core/input/AbstractSource.cs trunk/xmlunit/src/main/net-core/input/DOMSource.cs trunk/xmlunit/src/main/net-core/input/ReaderSource.cs trunk/xmlunit/src/main/net-core/input/StreamSource.cs Property Changed: ---------------- trunk/xmlunit/src/main/net-core/ISource.cs trunk/xmlunit/src/main/net-core/builder/Input.cs trunk/xmlunit/src/main/net-core/input/AbstractSource.cs trunk/xmlunit/src/main/net-core/input/DOMSource.cs trunk/xmlunit/src/main/net-core/input/ReaderSource.cs trunk/xmlunit/src/main/net-core/input/StreamSource.cs Modified: trunk/xmlunit/src/main/net-core/ISource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/ISource.cs 2009-05-12 04:29:34 UTC (rev 316) +++ trunk/xmlunit/src/main/net-core/ISource.cs 2009-05-12 10:46:49 UTC (rev 317) @@ -1,20 +1,20 @@ -/* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -using System.Xml; - -namespace net.sf.xmlunit { - public interface ISource { - XmlReader Reader {get;} - } -} +/* + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +using System.Xml; + +namespace net.sf.xmlunit { + public interface ISource { + XmlReader Reader {get;} + } +} Property changes on: trunk/xmlunit/src/main/net-core/ISource.cs ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/xmlunit/src/main/net-core/builder/Input.cs =================================================================== --- trunk/xmlunit/src/main/net-core/builder/Input.cs 2009-05-12 04:29:34 UTC (rev 316) +++ trunk/xmlunit/src/main/net-core/builder/Input.cs 2009-05-12 10:46:49 UTC (rev 317) @@ -1,136 +1,136 @@ -/* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -using System.IO; -using System.Xml; -using System.Xml.Xsl; -using net.sf.xmlunit.input; - -namespace net.sf.xmlunit.builder { - public static class Input { - public interface IBuilder { - ISource Build(); - } - - internal class DOMBuilder : IBuilder { - private readonly ISource source; - internal DOMBuilder(XmlDocument d) { - source = new DOMSource(d); - } - public ISource Build() { - return source; - } - } - - public static IBuilder FromDocument(XmlDocument d) { - return new DOMBuilder(d); - } - - internal class StreamBuilder : IBuilder { - private readonly ISource source; - internal StreamBuilder(string s) { - source = new StreamSource(s); - } - internal StreamBuilder(Stream s) { - source = new StreamSource(s); - } - internal StreamBuilder(TextReader r) { - source = new StreamSource(r); - } - public ISource Build() { - return source; - } - } - - public static IBuilder FromFile(string name) { - return new StreamBuilder(name); - } - - public static IBuilder FromStream(Stream s) { - return new StreamBuilder(s); - } - - public static IBuilder FromReader(TextReader r) { - return new StreamBuilder(r); - } - - public static IBuilder FromMemory(string s) { - return FromReader(new StringReader(s)); - } - - public static IBuilder FromMemory(byte[] b) { - return FromStream(new MemoryStream(b)); - } - - public static IBuilder FromURI(string uri) { - return new StreamBuilder(uri); - } - - public static IBuilder FromURI(System.Uri uri) { - return new StreamBuilder(uri.AbsoluteUri); - } - - public interface ITransformationBuilder : IBuilder { - ITransformationBuilder WithStylesheet(ISource s); - ITransformationBuilder WithExtensionObject(string namespaceUri, - object extension); - ITransformationBuilder WithParameter(string name, - string namespaceUri, - object parameter); - } - - internal class Transformation : ITransformationBuilder { - private readonly ISource source; - private ISource styleSheet; - private readonly XsltArgumentList args = new XsltArgumentList(); - internal Transformation(ISource s) { - source = s; - } - public ITransformationBuilder WithStylesheet(ISource s) { - this.styleSheet = styleSheet; - return this; - } - - public ITransformationBuilder WithExtensionObject(string namespaceUri, - object extension) { - args.AddExtensionObject(namespaceUri, extension); - return this; - } - - public ITransformationBuilder WithParameter(string name, - string namespaceUri, - object parameter) { - args.AddParam(name, namespaceUri, parameter); - return this; - } - - public ISource Build() { - XslCompiledTransform t = new XslCompiledTransform(); - if (styleSheet != null) { - t.Load(styleSheet.Reader); - } - MemoryStream ms = new MemoryStream(); - using (ms) { - t.Transform(source.Reader, - args, - ms); - } - return FromMemory(ms.ToArray()).Build(); - } - } - - public static ITransformationBuilder ByTransforming(ISource s) { - return new Transformation(s); - } - } -} +/* + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +using System.IO; +using System.Xml; +using System.Xml.Xsl; +using net.sf.xmlunit.input; + +namespace net.sf.xmlunit.builder { + public static class Input { + public interface IBuilder { + ISource Build(); + } + + internal class DOMBuilder : IBuilder { + private readonly ISource source; + internal DOMBuilder(XmlDocument d) { + source = new DOMSource(d); + } + public ISource Build() { + return source; + } + } + + public static IBuilder FromDocument(XmlDocument d) { + return new DOMBuilder(d); + } + + internal class StreamBuilder : IBuilder { + private readonly ISource source; + internal StreamBuilder(string s) { + source = new StreamSource(s); + } + internal StreamBuilder(Stream s) { + source = new StreamSource(s); + } + internal StreamBuilder(TextReader r) { + source = new StreamSource(r); + } + public ISource Build() { + return source; + } + } + + public static IBuilder FromFile(string name) { + return new StreamBuilder(name); + } + + public static IBuilder FromStream(Stream s) { + return new StreamBuilder(s); + } + + public static IBuilder FromReader(TextReader r) { + return new StreamBuilder(r); + } + + public static IBuilder FromMemory(string s) { + return FromReader(new StringReader(s)); + } + + public static IBuilder FromMemory(byte[] b) { + return FromStream(new MemoryStream(b)); + } + + public static IBuilder FromURI(string uri) { + return new StreamBuilder(uri); + } + + public static IBuilder FromURI(System.Uri uri) { + return new StreamBuilder(uri.AbsoluteUri); + } + + public interface ITransformationBuilder : IBuilder { + ITransformationBuilder WithStylesheet(ISource s); + ITransformationBuilder WithExtensionObject(string namespaceUri, + object extension); + ITransformationBuilder WithParameter(string name, + string namespaceUri, + object parameter); + } + + internal class Transformation : ITransformationBuilder { + private readonly ISource source; + private ISource styleSheet; + private readonly XsltArgumentList args = new XsltArgumentList(); + internal Transformation(ISource s) { + source = s; + } + public ITransformationBuilder WithStylesheet(ISource s) { + this.styleSheet = styleSheet; + return this; + } + + public ITransformationBuilder WithExtensionObject(string namespaceUri, + object extension) { + args.AddExtensionObject(namespaceUri, extension); + return this; + } + + public ITransformationBuilder WithParameter(string name, + string namespaceUri, + object parameter) { + args.AddParam(name, namespaceUri, parameter); + return this; + } + + public ISource Build() { + XslCompiledTransform t = new XslCompiledTransform(); + if (styleSheet != null) { + t.Load(styleSheet.Reader); + } + MemoryStream ms = new MemoryStream(); + using (ms) { + t.Transform(source.Reader, + args, + ms); + } + return FromMemory(ms.ToArray()).Build(); + } + } + + public static ITransformationBuilder ByTransforming(ISource s) { + return new Transformation(s); + } + } +} Property changes on: trunk/xmlunit/src/main/net-core/builder/Input.cs ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/xmlunit/src/main/net-core/input/AbstractSource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/input/AbstractSource.cs 2009-05-12 04:29:34 UTC (rev 316) +++ trunk/xmlunit/src/main/net-core/input/AbstractSource.cs 2009-05-12 10:46:49 UTC (rev 317) @@ -1,28 +1,28 @@ -/* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -using System.Xml; - -namespace net.sf.xmlunit.input { - public abstract class AbstractSource : ISource { - private readonly XmlReader reader; - protected AbstractSource(XmlReader r) { - reader = r; - } - public XmlReader Reader { - get { - return reader; - } - } - } -} +/* + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +using System.Xml; + +namespace net.sf.xmlunit.input { + public abstract class AbstractSource : ISource { + private readonly XmlReader reader; + protected AbstractSource(XmlReader r) { + reader = r; + } + public XmlReader Reader { + get { + return reader; + } + } + } +} Property changes on: trunk/xmlunit/src/main/net-core/input/AbstractSource.cs ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/xmlunit/src/main/net-core/input/DOMSource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/input/DOMSource.cs 2009-05-12 04:29:34 UTC (rev 316) +++ trunk/xmlunit/src/main/net-core/input/DOMSource.cs 2009-05-12 10:46:49 UTC (rev 317) @@ -1,22 +1,22 @@ -/* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -using System.Xml; - -namespace net.sf.xmlunit.input { - public class DOMSource : AbstractSource { - public DOMSource(XmlNode node) - : base(new XmlNodeReader(node)) { - } - } -} +/* + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +using System.Xml; + +namespace net.sf.xmlunit.input { + public class DOMSource : AbstractSource { + public DOMSource(XmlNode node) + : base(new XmlNodeReader(node)) { + } + } +} Property changes on: trunk/xmlunit/src/main/net-core/input/DOMSource.cs ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/xmlunit/src/main/net-core/input/ReaderSource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/input/ReaderSource.cs 2009-05-12 04:29:34 UTC (rev 316) +++ trunk/xmlunit/src/main/net-core/input/ReaderSource.cs 2009-05-12 10:46:49 UTC (rev 317) @@ -1,22 +1,22 @@ -/* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -using System.Xml; - -namespace net.sf.xmlunit.input { - public class ReaderSource : AbstractSource { - public ReaderSource(XmlReader rdr) - : base(rdr) { - } - } -} +/* + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +using System.Xml; + +namespace net.sf.xmlunit.input { + public class ReaderSource : AbstractSource { + public ReaderSource(XmlReader rdr) + : base(rdr) { + } + } +} Property changes on: trunk/xmlunit/src/main/net-core/input/ReaderSource.cs ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/xmlunit/src/main/net-core/input/StreamSource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/input/StreamSource.cs 2009-05-12 04:29:34 UTC (rev 316) +++ trunk/xmlunit/src/main/net-core/input/StreamSource.cs 2009-05-12 10:46:49 UTC (rev 317) @@ -1,31 +1,31 @@ -/* - This file is licensed to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -using System.IO; -using System.Xml; - -namespace net.sf.xmlunit.input { - public class StreamSource : AbstractSource { - public StreamSource(TextReader rdr) - : base(XmlReader.Create(rdr)) { - } - - public StreamSource(Stream stream) - : base(XmlReader.Create(stream)) { - } - - public StreamSource(string uri) - : base(XmlReader.Create(uri)) { - } - } -} +/* + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +using System.IO; +using System.Xml; + +namespace net.sf.xmlunit.input { + public class StreamSource : AbstractSource { + public StreamSource(TextReader rdr) + : base(XmlReader.Create(rdr)) { + } + + public StreamSource(Stream stream) + : base(XmlReader.Create(stream)) { + } + + public StreamSource(string uri) + : base(XmlReader.Create(uri)) { + } + } +} Property changes on: trunk/xmlunit/src/main/net-core/input/StreamSource.cs ___________________________________________________________________ Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-05-12 04:29:36
|
Revision: 316 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=316&view=rev Author: bodewig Date: 2009-05-12 04:29:34 +0000 (Tue, 12 May 2009) Log Message: ----------- wrap checked exception's Modified Paths: -------------- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java Added Paths: ----------- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/ConfigurationException.java trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitRuntimeException.java Modified: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2009-05-11 10:13:41 UTC (rev 315) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2009-05-12 04:29:34 UTC (rev 316) @@ -17,6 +17,7 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.InputStream; +import java.io.IOException; import java.io.Reader; import java.io.StringReader; import java.net.URI; @@ -30,6 +31,8 @@ import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamSource; +import net.sf.xmlunit.exceptions.ConfigurationException; +import net.sf.xmlunit.exceptions.XMLUnitRuntimeException; import org.w3c.dom.Document; public class Input { @@ -94,32 +97,46 @@ return fromStream(new ByteArrayInputStream(b)); } - public static Builder fromURL(URL url) throws Exception { - InputStream in = null; + public static Builder fromURL(URL url) { try { - in = url.openStream(); - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - int read = -1; - byte[] buf = new byte[4096]; - while ((read = in.read(buf)) >= 0) { - if (read > 0) { - baos.write(buf, 0, read); + InputStream in = null; + try { + in = url.openStream(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int read = -1; + byte[] buf = new byte[4096]; + while ((read = in.read(buf)) >= 0) { + if (read > 0) { + baos.write(buf, 0, read); + } } + return fromMemory(baos.toByteArray()); + } finally { + if (in != null) { + in.close(); + } } - return fromMemory(baos.toByteArray()); - } finally { - if (in != null) { - in.close(); - } + } catch (IOException ex) { + throw new XMLUnitRuntimeException(ex); } } - public static Builder fromURI(URI uri) throws Exception { - return fromURL(uri.toURL()); + public static Builder fromURI(URI uri) { + try { + return fromURL(uri.toURL()); + } catch (java.net.MalformedURLException ex) { + throw new IllegalArgumentException("uri " + uri + " is not an URL", + ex); + } } - public static Builder fromURI(String uri) throws Exception { + public static Builder fromURI(String uri) { + try { return fromURI(new URI(uri)); + } catch (java.net.URISyntaxException ex) { + throw new IllegalArgumentException("uri " + uri + " is not an URI", + ex); + } } public static interface TransformationBuilder extends Builder { @@ -168,8 +185,10 @@ } t.transform(source, r); return new DOMSource(r.getNode()); - } catch (Exception e) { - throw new RuntimeException(e); + } catch (javax.xml.transform.TransformerConfigurationException e) { + throw new ConfigurationException(e); + } catch (javax.xml.transform.TransformerException e) { + throw new XMLUnitRuntimeException(e); } } } Added: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/ConfigurationException.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/ConfigurationException.java (rev 0) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/ConfigurationException.java 2009-05-12 04:29:34 UTC (rev 316) @@ -0,0 +1,24 @@ +/* + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +package net.sf.xmlunit.exceptions; + +/** + * Exception thrown when anything inside JAXP throws a + * *ConfigurationException. + */ +public class ConfigurationException extends XMLUnitRuntimeException { + public ConfigurationException(Throwable cause) { + super(cause); + } +} Property changes on: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/ConfigurationException.java ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitRuntimeException.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitRuntimeException.java (rev 0) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitRuntimeException.java 2009-05-12 04:29:34 UTC (rev 316) @@ -0,0 +1,47 @@ +/* + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +package net.sf.xmlunit.exceptions; + +/** + * Base class of any Exception thrown within XMLUnit. + */ +public class XMLUnitRuntimeException extends RuntimeException { + /** + * Inititializes the exeption. + * + * @param message the detail message + * @param cause the root cause of the exception + */ + public XMLUnitRuntimeException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Inititializes an exeption without cause. + * + * @param message the detail message + */ + public XMLUnitRuntimeException(String message) { + this(message, null); + } + + /** + * Inititializes an exeption using the wrapped exception's message. + * + * @param message the detail message + */ + public XMLUnitRuntimeException(Throwable cause) { + this(cause != null ? cause.getMessage() : null, cause); + } +} \ No newline at end of file Property changes on: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/exceptions/XMLUnitRuntimeException.java ___________________________________________________________________ Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-05-11 10:13:47
|
Revision: 315 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=315&view=rev Author: bodewig Date: 2009-05-11 10:13:41 +0000 (Mon, 11 May 2009) Log Message: ----------- support for XSLT parameters Modified Paths: -------------- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java trunk/xmlunit/src/main/net-core/builder/Input.cs Modified: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2009-05-11 09:50:51 UTC (rev 314) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2009-05-11 10:13:41 UTC (rev 315) @@ -21,6 +21,9 @@ import java.io.StringReader; import java.net.URI; import java.net.URL; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; @@ -119,33 +122,50 @@ return fromURI(new URI(uri)); } - public static interface TransformationBuilder { - Builder withStylesheet(Source s); + public static interface TransformationBuilder extends Builder { + TransformationBuilder withStylesheet(Source s); + TransformationBuilder withParameter(String name, Object value); + TransformationBuilder withOutputProperty(String name, String value); } - private static class TransformationStep1 implements TransformationBuilder { - private Source sourceDoc; - private TransformationStep1(Source s) { - sourceDoc = s; + private static class Transformation implements TransformationBuilder { + private final Source source; + private Source styleSheet; + private final Properties output = new Properties(); + private final Map<String, Object> params = new HashMap<String, Object>(); + + private Transformation(Source s) { + source = s; } - public Builder withStylesheet(Source s) { - return new TransformationStep2(sourceDoc, s); + public TransformationBuilder withStylesheet(Source s) { + styleSheet = s; + return this; } - } + public TransformationBuilder withOutputProperty(String name, + String value) { + output.setProperty(name, value); + return this; + } - private static class TransformationStep2 implements Builder { - private Source source; - private Source styleSheet; - private TransformationStep2(Source source, Source styleSheet) { - this.source = source; - this.styleSheet = styleSheet; + public TransformationBuilder withParameter(String name, Object value) { + params.put(name, value); + return this; } public Source build() { try { DOMResult r = new DOMResult(); - Transformer t = TransformerFactory.newInstance() - .newTransformer(styleSheet); + TransformerFactory fac = TransformerFactory.newInstance(); + Transformer t = null; + if (styleSheet != null) { + t = fac.newTransformer(styleSheet); + } else { + t = fac.newTransformer(); + } + t.setOutputProperties(output); + for (Map.Entry<String, Object> ent : params.entrySet()) { + t.setParameter(ent.getKey(), ent.getValue()); + } t.transform(source, r); return new DOMSource(r.getNode()); } catch (Exception e) { @@ -155,6 +175,6 @@ } public static TransformationBuilder byTransforming(Source s) { - return new TransformationStep1(s); + return new Transformation(s); } } Modified: trunk/xmlunit/src/main/net-core/builder/Input.cs =================================================================== --- trunk/xmlunit/src/main/net-core/builder/Input.cs 2009-05-11 09:50:51 UTC (rev 314) +++ trunk/xmlunit/src/main/net-core/builder/Input.cs 2009-05-11 10:13:41 UTC (rev 315) @@ -80,35 +80,49 @@ return new StreamBuilder(uri.AbsoluteUri); } - public interface ITransformationBuilder { - IBuilder WithStylesheet(ISource s); + public interface ITransformationBuilder : IBuilder { + ITransformationBuilder WithStylesheet(ISource s); + ITransformationBuilder WithExtensionObject(string namespaceUri, + object extension); + ITransformationBuilder WithParameter(string name, + string namespaceUri, + object parameter); } - internal class TransformationStep1 : ITransformationBuilder { - private ISource sourceDoc; - internal TransformationStep1(ISource s) { - sourceDoc = s; + internal class Transformation : ITransformationBuilder { + private readonly ISource source; + private ISource styleSheet; + private readonly XsltArgumentList args = new XsltArgumentList(); + internal Transformation(ISource s) { + source = s; } - public IBuilder WithStylesheet(ISource s) { - return new TransformationStep2(sourceDoc, s); + public ITransformationBuilder WithStylesheet(ISource s) { + this.styleSheet = styleSheet; + return this; } - } - internal class TransformationStep2 : IBuilder { - private ISource source; - private ISource styleSheet; - internal TransformationStep2(ISource source, ISource styleSheet) { - this.source = source; - this.styleSheet = styleSheet; + public ITransformationBuilder WithExtensionObject(string namespaceUri, + object extension) { + args.AddExtensionObject(namespaceUri, extension); + return this; } + public ITransformationBuilder WithParameter(string name, + string namespaceUri, + object parameter) { + args.AddParam(name, namespaceUri, parameter); + return this; + } + public ISource Build() { XslCompiledTransform t = new XslCompiledTransform(); - t.Load(styleSheet.Reader); + if (styleSheet != null) { + t.Load(styleSheet.Reader); + } MemoryStream ms = new MemoryStream(); using (ms) { t.Transform(source.Reader, - new XsltArgumentList(), + args, ms); } return FromMemory(ms.ToArray()).Build(); @@ -116,7 +130,7 @@ } public static ITransformationBuilder ByTransforming(ISource s) { - return new TransformationStep1(s); + return new Transformation(s); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-05-11 09:51:00
|
Revision: 314 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=314&view=rev Author: bodewig Date: 2009-05-11 09:50:51 +0000 (Mon, 11 May 2009) Log Message: ----------- input by XSLT transforming another input Modified Paths: -------------- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java trunk/xmlunit/src/main/net-core/builder/Input.cs Modified: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2009-05-11 09:25:11 UTC (rev 313) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2009-05-11 09:50:51 UTC (rev 314) @@ -22,6 +22,9 @@ import java.net.URI; import java.net.URL; import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamSource; import org.w3c.dom.Document; @@ -115,4 +118,43 @@ public static Builder fromURI(String uri) throws Exception { return fromURI(new URI(uri)); } + + public static interface TransformationBuilder { + Builder withStylesheet(Source s); + } + + private static class TransformationStep1 implements TransformationBuilder { + private Source sourceDoc; + private TransformationStep1(Source s) { + sourceDoc = s; + } + public Builder withStylesheet(Source s) { + return new TransformationStep2(sourceDoc, s); + } + } + + private static class TransformationStep2 implements Builder { + private Source source; + private Source styleSheet; + private TransformationStep2(Source source, Source styleSheet) { + this.source = source; + this.styleSheet = styleSheet; + } + + public Source build() { + try { + DOMResult r = new DOMResult(); + Transformer t = TransformerFactory.newInstance() + .newTransformer(styleSheet); + t.transform(source, r); + return new DOMSource(r.getNode()); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + + public static TransformationBuilder byTransforming(Source s) { + return new TransformationStep1(s); + } } Modified: trunk/xmlunit/src/main/net-core/builder/Input.cs =================================================================== --- trunk/xmlunit/src/main/net-core/builder/Input.cs 2009-05-11 09:25:11 UTC (rev 313) +++ trunk/xmlunit/src/main/net-core/builder/Input.cs 2009-05-11 09:50:51 UTC (rev 314) @@ -13,6 +13,7 @@ */ using System.IO; using System.Xml; +using System.Xml.Xsl; using net.sf.xmlunit.input; namespace net.sf.xmlunit.builder { @@ -79,5 +80,43 @@ return new StreamBuilder(uri.AbsoluteUri); } + public interface ITransformationBuilder { + IBuilder WithStylesheet(ISource s); + } + + internal class TransformationStep1 : ITransformationBuilder { + private ISource sourceDoc; + internal TransformationStep1(ISource s) { + sourceDoc = s; + } + public IBuilder WithStylesheet(ISource s) { + return new TransformationStep2(sourceDoc, s); + } + } + + internal class TransformationStep2 : IBuilder { + private ISource source; + private ISource styleSheet; + internal TransformationStep2(ISource source, ISource styleSheet) { + this.source = source; + this.styleSheet = styleSheet; + } + + public ISource Build() { + XslCompiledTransform t = new XslCompiledTransform(); + t.Load(styleSheet.Reader); + MemoryStream ms = new MemoryStream(); + using (ms) { + t.Transform(source.Reader, + new XsltArgumentList(), + ms); + } + return FromMemory(ms.ToArray()).Build(); + } + } + + public static ITransformationBuilder ByTransforming(ISource s) { + return new TransformationStep1(s); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-05-11 09:25:21
|
Revision: 313 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=313&view=rev Author: bodewig Date: 2009-05-11 09:25:11 +0000 (Mon, 11 May 2009) Log Message: ----------- most common input scenarios Modified Paths: -------------- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java trunk/xmlunit/src/main/net-core/builder/Input.cs Modified: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2009-05-11 08:49:05 UTC (rev 312) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2009-05-11 09:25:11 UTC (rev 313) @@ -1,7 +1,4 @@ /* - Licensed to the XMLUnit developers under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. This file is licensed to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -16,8 +13,17 @@ */ package net.sf.xmlunit.builder; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.InputStream; +import java.io.Reader; +import java.io.StringReader; +import java.net.URI; +import java.net.URL; import javax.xml.transform.Source; import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamSource; import org.w3c.dom.Document; public class Input { @@ -40,5 +46,73 @@ public static Builder fromDocument(Document d) { return new DOMBuilder(d); } + + private static class StreamBuilder implements Builder { + private final Source source; + private StreamBuilder(File f) { + source = new StreamSource(f); + } + private StreamBuilder(InputStream s) { + source = new StreamSource(s); + } + private StreamBuilder(Reader r) { + source = new StreamSource(r); + } + public Source build() { + assert source != null; + return source; + } + } + + public static Builder fromFile(File f) { + return new StreamBuilder(f); + } + + public static Builder fromFile(String name) { + return new StreamBuilder(new File(name)); + } + + public static Builder fromStream(InputStream s) { + return new StreamBuilder(s); + } + + public static Builder fromReader(Reader r) { + return new StreamBuilder(r); + } + + public static Builder fromMemory(String s) { + return fromReader(new StringReader(s)); + } + + public static Builder fromMemory(byte[] b) { + return fromStream(new ByteArrayInputStream(b)); + } + + public static Builder fromURL(URL url) throws Exception { + InputStream in = null; + try { + in = url.openStream(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int read = -1; + byte[] buf = new byte[4096]; + while ((read = in.read(buf)) >= 0) { + if (read > 0) { + baos.write(buf, 0, read); + } + } + return fromMemory(baos.toByteArray()); + } finally { + if (in != null) { + in.close(); + } + } + } + + public static Builder fromURI(URI uri) throws Exception { + return fromURL(uri.toURL()); + } + + public static Builder fromURI(String uri) throws Exception { + return fromURI(new URI(uri)); + } } - \ No newline at end of file Modified: trunk/xmlunit/src/main/net-core/builder/Input.cs =================================================================== --- trunk/xmlunit/src/main/net-core/builder/Input.cs 2009-05-11 08:49:05 UTC (rev 312) +++ trunk/xmlunit/src/main/net-core/builder/Input.cs 2009-05-11 09:25:11 UTC (rev 313) @@ -11,8 +11,9 @@ See the License for the specific language governing permissions and limitations under the License. */ +using System.IO; +using System.Xml; using net.sf.xmlunit.input; -using System.Xml; namespace net.sf.xmlunit.builder { public static class Input { @@ -33,5 +34,50 @@ public static IBuilder FromDocument(XmlDocument d) { return new DOMBuilder(d); } + + internal class StreamBuilder : IBuilder { + private readonly ISource source; + internal StreamBuilder(string s) { + source = new StreamSource(s); + } + internal StreamBuilder(Stream s) { + source = new StreamSource(s); + } + internal StreamBuilder(TextReader r) { + source = new StreamSource(r); + } + public ISource Build() { + return source; + } + } + + public static IBuilder FromFile(string name) { + return new StreamBuilder(name); + } + + public static IBuilder FromStream(Stream s) { + return new StreamBuilder(s); + } + + public static IBuilder FromReader(TextReader r) { + return new StreamBuilder(r); + } + + public static IBuilder FromMemory(string s) { + return FromReader(new StringReader(s)); + } + + public static IBuilder FromMemory(byte[] b) { + return FromStream(new MemoryStream(b)); + } + + public static IBuilder FromURI(string uri) { + return new StreamBuilder(uri); + } + + public static IBuilder FromURI(System.Uri uri) { + return new StreamBuilder(uri.AbsoluteUri); + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-05-11 08:49:14
|
Revision: 312 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=312&view=rev Author: bodewig Date: 2009-05-11 08:49:05 +0000 (Mon, 11 May 2009) Log Message: ----------- Add classes corresponding to Java's Source implementations where ReaderSource corresponds to StAXSource Modified Paths: -------------- trunk/xmlunit/src/main/net-core/ISource.cs trunk/xmlunit/src/main/net-core/builder/Input.cs Added Paths: ----------- trunk/xmlunit/src/main/net-core/input/ trunk/xmlunit/src/main/net-core/input/AbstractSource.cs trunk/xmlunit/src/main/net-core/input/DOMSource.cs trunk/xmlunit/src/main/net-core/input/ReaderSource.cs trunk/xmlunit/src/main/net-core/input/StreamSource.cs Modified: trunk/xmlunit/src/main/net-core/ISource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/ISource.cs 2009-05-04 15:43:53 UTC (rev 311) +++ trunk/xmlunit/src/main/net-core/ISource.cs 2009-05-11 08:49:05 UTC (rev 312) @@ -1,7 +1,4 @@ /* - Licensed to the XMLUnit developers under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. This file is licensed to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at Modified: trunk/xmlunit/src/main/net-core/builder/Input.cs =================================================================== --- trunk/xmlunit/src/main/net-core/builder/Input.cs 2009-05-04 15:43:53 UTC (rev 311) +++ trunk/xmlunit/src/main/net-core/builder/Input.cs 2009-05-11 08:49:05 UTC (rev 312) @@ -1,7 +1,4 @@ /* - Licensed to the XMLUnit developers under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. This file is licensed to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -14,22 +11,11 @@ See the License for the specific language governing permissions and limitations under the License. */ +using net.sf.xmlunit.input; using System.Xml; namespace net.sf.xmlunit.builder { public static class Input { - internal class Source : ISource { - private readonly XmlReader reader; - internal Source(XmlReader r) { - reader = r; - } - public XmlReader Reader { - get { - return reader; - } - } - } - public interface IBuilder { ISource Build(); } @@ -37,7 +23,7 @@ internal class DOMBuilder : IBuilder { private readonly ISource source; internal DOMBuilder(XmlDocument d) { - source = new Source(new XmlNodeReader(d)); + source = new DOMSource(d); } public ISource Build() { return source; Added: trunk/xmlunit/src/main/net-core/input/AbstractSource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/input/AbstractSource.cs (rev 0) +++ trunk/xmlunit/src/main/net-core/input/AbstractSource.cs 2009-05-11 08:49:05 UTC (rev 312) @@ -0,0 +1,28 @@ +/* + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +using System.Xml; + +namespace net.sf.xmlunit.input { + public abstract class AbstractSource : ISource { + private readonly XmlReader reader; + protected AbstractSource(XmlReader r) { + reader = r; + } + public XmlReader Reader { + get { + return reader; + } + } + } +} Added: trunk/xmlunit/src/main/net-core/input/DOMSource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/input/DOMSource.cs (rev 0) +++ trunk/xmlunit/src/main/net-core/input/DOMSource.cs 2009-05-11 08:49:05 UTC (rev 312) @@ -0,0 +1,22 @@ +/* + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +using System.Xml; + +namespace net.sf.xmlunit.input { + public class DOMSource : AbstractSource { + public DOMSource(XmlNode node) + : base(new XmlNodeReader(node)) { + } + } +} Added: trunk/xmlunit/src/main/net-core/input/ReaderSource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/input/ReaderSource.cs (rev 0) +++ trunk/xmlunit/src/main/net-core/input/ReaderSource.cs 2009-05-11 08:49:05 UTC (rev 312) @@ -0,0 +1,22 @@ +/* + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +using System.Xml; + +namespace net.sf.xmlunit.input { + public class ReaderSource : AbstractSource { + public ReaderSource(XmlReader rdr) + : base(rdr) { + } + } +} Added: trunk/xmlunit/src/main/net-core/input/StreamSource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/input/StreamSource.cs (rev 0) +++ trunk/xmlunit/src/main/net-core/input/StreamSource.cs 2009-05-11 08:49:05 UTC (rev 312) @@ -0,0 +1,31 @@ +/* + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +using System.IO; +using System.Xml; + +namespace net.sf.xmlunit.input { + public class StreamSource : AbstractSource { + public StreamSource(TextReader rdr) + : base(XmlReader.Create(rdr)) { + } + + public StreamSource(Stream stream) + : base(XmlReader.Create(stream)) { + } + + public StreamSource(string uri) + : base(XmlReader.Create(uri)) { + } + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Stefan B. <bo...@ap...> - 2009-05-05 08:07:06
|
To whom it may engage... This is an automated request, but not an unsolicited one. For more information please visit http://gump.apache.org/nagged.html, and/or contact the folk at ge...@gu.... Project xmlunit has an issue affecting its community integration. This issue affects 14 projects. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - commons-jelly-tags-jaxme : Commons Jelly - commons-jelly-tags-jmx : Commons Jelly - commons-jelly-tags-xmlunit : Commons Jelly - db-torque-runtime : Persistence Layer - jakarta-turbine-jcs : Cache - jgroups : A Reliable Multicast Communication Toolkit for Java - mx4j : OpenSource implementation of a JMX agent - mx4j-remote : OpenSource implementation of a JMX agent - mx4j-tools : OpenSource implementation of a JMX agent - mx4j-tools-from-packaged-jetty : OpenSource implementation of a JMX agent - naming-management : Apache Directory Naming Component - ws-axis-test : Apache eXtensible Interaction System - xml-xindice : native XML database - xmlunit : JUnit extension for XML unit tests. Full details are available at: http://vmgump.apache.org/gump/public/xmlunit/xmlunit/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Output [xmlunit-sumo-05052009.jar] identifier set to output basename: [xmlunit-sumo] -INFO- Failed with reason build failed -INFO- Failed to extract fallback artifacts from Gump Repository The following work was performed: http://vmgump.apache.org/gump/public/xmlunit/xmlunit/gump_work/build_xmlunit_xmlunit.html Work Name: build_xmlunit_xmlunit (Type: Build) Work ended in a state of : Failed Elapsed: 4 secs Command Line: /usr/lib/jvm/java-6-sun/bin/java -Djava.awt.headless=true -Xbootclasspath/p:/srv/gump/public/workspace/xml-commons/java/external/build/xml-apis.jar:/srv/gump/public/workspace/xml-xerces2/build/xercesImpl.jar:/srv/gump/public/workspace/xml-xalan/build/serializer.jar:/srv/gump/public/workspace/xml-xalan/build/xalan-unbundled.jar org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Dbuild.sysclasspath=only -Dxmlunit.version=05052009 Gump [Working Directory: /srv/gump/public/workspace/xmlunit] CLASSPATH: /usr/lib/jvm/java-6-sun/lib/tools.jar:/srv/gump/public/workspace/xmlunit/build/classes:/srv/gump/public/workspace/xmlunit/build/test-classes:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/ant/dist/lib/ant-trax.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/packages/junit3.8.1/junit.jar:/srv/gump/public/workspace/xml-commons/java/build/resolver.jar:/srv/gump/public/workspace/junit/dist/junit-05052009.jar:/srv/gump/public/workspace/xml-commons/java/external/build/xml-apis-ext.jar --------------------------------------------- [javac] /srv/gump/public/workspace/xmlunit/src/tests/java-legacy/org/custommonkey/xmlunit/test_NodeInputStream.java:51: cannot find symbol [javac] symbol : class NodeInputStream [javac] location: class org.custommonkey.xmlunit.test_NodeInputStream [javac] private NodeInputStream nodeStream; [javac] ^ [javac] /srv/gump/public/workspace/xmlunit/src/tests/java-legacy/org/custommonkey/xmlunit/test_NodeTest.java:50: cannot find symbol [javac] symbol : class NodeTest [javac] location: class org.custommonkey.xmlunit.test_NodeTest [javac] private NodeTest nodeTest; [javac] ^ [javac] /srv/gump/public/workspace/xmlunit/src/tests/java-legacy/org/custommonkey/xmlunit/test_NodeTest.java:52: cannot find symbol [javac] symbol : class NodeTester [javac] location: class org.custommonkey.xmlunit.test_NodeTest [javac] private class NodeTypeTester implements NodeTester { [javac] ^ [javac] /srv/gump/public/workspace/xmlunit/src/tests/java-legacy/org/custommonkey/xmlunit/test_NodeTest.java:57: cannot find symbol [javac] symbol : class NodeTest [javac] location: class org.custommonkey.xmlunit.test_NodeTest.NodeTypeTester [javac] public void testNode(Node aNode, NodeTest forTest) { [javac] ^ [javac] /srv/gump/public/workspace/xmlunit/src/tests/java-legacy/org/custommonkey/xmlunit/test_NodeTest.java:60: cannot find symbol [javac] symbol : class NodeTest [javac] location: class org.custommonkey.xmlunit.test_NodeTest.NodeTypeTester [javac] public void noMoreNodes(NodeTest forTest) { [javac] ^ [javac] /srv/gump/public/workspace/xmlunit/src/tests/java-legacy/org/custommonkey/xmlunit/test_NodeTest.java:64: cannot find symbol [javac] symbol : class NodeTester [javac] location: class org.custommonkey.xmlunit.test_NodeTest [javac] private class RejectingNodeTester implements NodeTester { [javac] ^ [javac] /srv/gump/public/workspace/xmlunit/src/tests/java-legacy/org/custommonkey/xmlunit/test_NodeTest.java:66: cannot find symbol [javac] symbol : class NodeTest [javac] location: class org.custommonkey.xmlunit.test_NodeTest.RejectingNodeTester [javac] public void testNode(Node aNode, NodeTest forTest) [javac] ^ [javac] /srv/gump/public/workspace/xmlunit/src/tests/java-legacy/org/custommonkey/xmlunit/test_NodeTest.java:67: cannot find symbol [javac] symbol : class NodeTestException [javac] location: class org.custommonkey.xmlunit.test_NodeTest.RejectingNodeTester [javac] throws NodeTestException { [javac] ^ [javac] Note: Some input files use or override a deprecated API. [javac] Note: Recompile with -Xlint:deprecation for details. [javac] Note: Some input files use unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details. [javac] 100 errors BUILD FAILED /srv/gump/public/workspace/xmlunit/build.xml:101: Compile failed; see the compiler error output for details. Total time: 3 seconds --------------------------------------------- To subscribe to this information via syndicated feeds: - RSS: http://vmgump.apache.org/gump/public/xmlunit/xmlunit/rss.xml - Atom: http://vmgump.apache.org/gump/public/xmlunit/xmlunit/atom.xml ============================== Gump Tracking Only === Produced by Gump version 2.3. Gump Run 06000005052009, vmgump:vmgump-public:06000005052009 Gump E-mail Identifier (unique within run) #17. -- Apache Gump http://gump.apache.org/ [Instance: vmgump] |
From: <bo...@us...> - 2009-05-04 15:43:59
|
Revision: 311 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=311&view=rev Author: bodewig Date: 2009-05-04 15:43:53 +0000 (Mon, 04 May 2009) Log Message: ----------- Placeholder class files for XMLUnit.NET 2, first build system refactorings. Much more to come. Modified Paths: -------------- trunk/xmlunit/xmlunit.nant.build Added Paths: ----------- trunk/xmlunit/src/main/net-core/ trunk/xmlunit/src/main/net-core/ISource.cs trunk/xmlunit/src/main/net-core/builder/ trunk/xmlunit/src/main/net-core/builder/Input.cs Added: trunk/xmlunit/src/main/net-core/ISource.cs =================================================================== --- trunk/xmlunit/src/main/net-core/ISource.cs (rev 0) +++ trunk/xmlunit/src/main/net-core/ISource.cs 2009-05-04 15:43:53 UTC (rev 311) @@ -0,0 +1,23 @@ +/* + Licensed to the XMLUnit developers under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +using System.Xml; + +namespace net.sf.xmlunit { + public interface ISource { + XmlReader Reader {get;} + } +} Added: trunk/xmlunit/src/main/net-core/builder/Input.cs =================================================================== --- trunk/xmlunit/src/main/net-core/builder/Input.cs (rev 0) +++ trunk/xmlunit/src/main/net-core/builder/Input.cs 2009-05-04 15:43:53 UTC (rev 311) @@ -0,0 +1,51 @@ +/* + Licensed to the XMLUnit developers under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +using System.Xml; + +namespace net.sf.xmlunit.builder { + public static class Input { + internal class Source : ISource { + private readonly XmlReader reader; + internal Source(XmlReader r) { + reader = r; + } + public XmlReader Reader { + get { + return reader; + } + } + } + + public interface IBuilder { + ISource Build(); + } + + internal class DOMBuilder : IBuilder { + private readonly ISource source; + internal DOMBuilder(XmlDocument d) { + source = new Source(new XmlNodeReader(d)); + } + public ISource Build() { + return source; + } + } + + public static IBuilder FromDocument(XmlDocument d) { + return new DOMBuilder(d); + } + } +} Modified: trunk/xmlunit/xmlunit.nant.build =================================================================== --- trunk/xmlunit/xmlunit.nant.build 2009-05-04 15:16:06 UTC (rev 310) +++ trunk/xmlunit/xmlunit.nant.build 2009-05-04 15:43:53 UTC (rev 311) @@ -1,11 +1,15 @@ <project name="xmlunit" description="XmlUnit for .Net" default="compile"> - <property name="project.version" value="0.4" overwrite="false"/> + <property name="project.version" value="2.0" overwrite="false"/> <property name="base.dir" value="${project::get-base-directory()}" overwrite="false"/> - <property name="src.dir" value="${base.dir}/src/main/net-legacy" overwrite="false"/> + <property name="core.src.dir" value="${base.dir}/src/main/net-core" overwrite="false"/> + <property name="legacy.src.dir" value="${base.dir}/src/main/net-legacy" overwrite="false"/> <property name="tests.src.dir" value="${base.dir}/src/tests/net-legacy" overwrite="false"/> - <property name="bin.dir" value="${base.dir}/bin" overwrite="false"/> + + <property name="build.dir" value="${base.dir}/build/net" overwrite="false"/> + <property name="bin.dir" value="${build.dir}/bin" overwrite="false"/> + <property name="csc.verbose" value="false" overwrite="false"/> <property name="deploy.file" overwrite="false" value="${project::get-name()}-${project.version}.zip"/> @@ -24,19 +28,29 @@ <target name="clean" description="clean out compiled files"> <delete failonerror="false"> - <fileset basedir="${bin.dir}"> - <include name="${project::get-name()}.*"/> - </fileset> + <fileset basedir="${build.dir}"/> </delete> </target> - <target name="compile" description="compile all source files" depends="init"> - <csc target="library" output="${bin.dir}/${project::get-name()}.dll" + <target name="compile-core" + description="compile core source files" depends="init"> + <csc target="library" output="${bin.dir}/${project::get-name()}-core.dll" + debug="true" verbose="${csc.verbose}"> + <sources basedir="${core.src.dir}"> + <include name="**/*.cs"/> + </sources> + </csc> + </target> + + <target name="compile" description="compile all source files" + depends="compile-core"> + <csc target="library" output="${bin.dir}/${project::get-name()}-legacy.dll" debug="true" verbose="${csc.verbose}"> <references basedir="${bin.dir}"> + <include name="${project::get-name()}-core.dll"/> <include name="${nunit.v2.assembly}"/> </references> - <sources basedir="${src.dir}"> + <sources basedir="${legacy.src.dir}"> <include name="*.cs"/> </sources> </csc> @@ -45,7 +59,8 @@ output="${bin.dir}/${project::get-name()}.tests.dll" debug="true" verbose="${csc.verbose}"> <references basedir="${bin.dir}"> - <include name="${project::get-name()}.dll"/> + <include name="${project::get-name()}-core.dll"/> + <include name="${project::get-name()}-legacy.dll"/> <include name="${nunit.v2.assembly}"/> </references> <sources basedir="${tests.src.dir}"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-05-04 15:16:14
|
Revision: 310 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=310&view=rev Author: bodewig Date: 2009-05-04 15:16:06 +0000 (Mon, 04 May 2009) Log Message: ----------- rename legacy directories Modified Paths: -------------- trunk/xmlunit/build.xml trunk/xmlunit/xmlunit.nant.build Added Paths: ----------- trunk/xmlunit/src/main/java-legacy/ trunk/xmlunit/src/main/net-legacy/ trunk/xmlunit/src/tests/java-legacy/ trunk/xmlunit/src/tests/net-legacy/ Removed Paths: ------------- trunk/xmlunit/src/main/legacy-java/ trunk/xmlunit/src/main/legacy-net/ trunk/xmlunit/src/tests/legacy-java/ trunk/xmlunit/src/tests/legacy-net/ Modified: trunk/xmlunit/build.xml =================================================================== --- trunk/xmlunit/build.xml 2009-05-04 15:10:48 UTC (rev 309) +++ trunk/xmlunit/build.xml 2009-05-04 15:16:06 UTC (rev 310) @@ -88,7 +88,7 @@ <target name="compile" depends="compile-core" description="compiles legacy sources and tests"> - <javac srcdir="${src.dir}/legacy-java" destdir="${legacy.out.dir}" + <javac srcdir="${src.dir}/java-legacy" destdir="${legacy.out.dir}" debug="${javac.debug}" target="${javac.target}" source="${javac.source}"> <classpath> <pathelement location="${core.out.dir}"/> @@ -97,7 +97,7 @@ </classpath> <exclude name="**/*XPathRegexAssert.java" unless="regexp.present"/> </javac> - <javac srcdir="${test.dir}/legacy-java" destdir="${test.out.dir}" + <javac srcdir="${test.dir}/java-legacy" destdir="${test.out.dir}" debug="${javac.debug}" target="${javac.target}" source="${javac.source}"> <classpath> <pathelement location="${core.out.dir}"/> @@ -132,7 +132,7 @@ </classpath> <formatter type="xml"/> <batchtest todir="${test.report.dir}"> - <fileset dir="${test.dir}/legacy-java"> + <fileset dir="${test.dir}/java-legacy"> <include name="**/test_*.java"/> </fileset> </batchtest> @@ -156,12 +156,12 @@ description="creates the API documentation"> <delete includeEmptyDirs="true" dir="${docs.dir}/api"/> <javadoc destdir="${docs.dir}/api" - overview="${src.dir}/legacy-java/overview.html" + overview="${src.dir}/java-legacy/overview.html" windowtitle="XMLUnit Documentation" footer="<p><a href="http://xmlunit.sourceforge.net/">XMLUnit</a> is hosted by sourceforge.net</p>"> <group title="XMLUnit v${xmlunit.version}" packages="org.custommonkey.xmlunit*"/> - <fileset dir="${src.dir}/legacy-java"> + <fileset dir="${src.dir}/java-legacy"> <include name="org/custommonkey/**/*.java"/> </fileset> <classpath> Modified: trunk/xmlunit/xmlunit.nant.build =================================================================== --- trunk/xmlunit/xmlunit.nant.build 2009-05-04 15:10:48 UTC (rev 309) +++ trunk/xmlunit/xmlunit.nant.build 2009-05-04 15:16:06 UTC (rev 310) @@ -2,8 +2,8 @@ <property name="project.version" value="0.4" overwrite="false"/> <property name="base.dir" value="${project::get-base-directory()}" overwrite="false"/> - <property name="src.dir" value="${base.dir}/src/main/legacy-net" overwrite="false"/> - <property name="tests.src.dir" value="${base.dir}/src/tests/legacy-net" + <property name="src.dir" value="${base.dir}/src/main/net-legacy" overwrite="false"/> + <property name="tests.src.dir" value="${base.dir}/src/tests/net-legacy" overwrite="false"/> <property name="bin.dir" value="${base.dir}/bin" overwrite="false"/> <property name="csc.verbose" value="false" overwrite="false"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-05-04 15:10:51
|
Revision: 309 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=309&view=rev Author: bodewig Date: 2009-05-04 15:10:48 +0000 (Mon, 04 May 2009) Log Message: ----------- Placeholder class file for XMLUnit-Java 2, first build system refactorings. Much more to come. Modified Paths: -------------- trunk/xmlunit/build.xml Added Paths: ----------- trunk/xmlunit/src/main/java-core/ trunk/xmlunit/src/main/java-core/net/ trunk/xmlunit/src/main/java-core/net/sf/ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java Modified: trunk/xmlunit/build.xml =================================================================== --- trunk/xmlunit/build.xml 2009-05-04 14:19:57 UTC (rev 308) +++ trunk/xmlunit/build.xml 2009-05-04 15:10:48 UTC (rev 309) @@ -1,35 +1,19 @@ <?xml version="1.0"?> <!-- -Copyright (c) 2001-2008, Jeff Martin, Tim Bacon -All rights reserved. + Licensed to the XMLUnit developers under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: + http://www.apache.org/licenses/LICENSE-2.0 - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of the xmlunit.sourceforge.net nor the names - of its contributors may be used to endorse or promote products - derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> <project name="xmlunit" default="test" basedir="."> @@ -37,14 +21,15 @@ <property file="build.properties"/> <!-- Version --> - <property name="xmlunit.version" value="1.3alpha"/> + <property name="xmlunit.version" value="2.0alpha"/> <!-- some locations --> <property name="src.dir" value="src/main"/> <property name="test.dir" value="src/tests"/> - <property name="build.dir" location="build"/> + <property name="build.dir" location="build/java"/> <property name="lib.dir" value="${build.dir}/lib"/> - <property name="out.dir" value="${build.dir}/classes"/> + <property name="core.out.dir" value="${build.dir}/core-classes"/> + <property name="legacy.out.dir" value="${build.dir}/legacy-classes"/> <property name="test.out.dir" value="${build.dir}/test-classes"/> <property name="userguide.out.dir" value="${build.dir}/ug-classes"/> <property name="test.report.dir" value="${build.dir}/test-report"/> @@ -53,33 +38,24 @@ <property name="userguide.docs.dir" value="${docs.dir}/userguide"/> <!-- javac properties --> - <property name="javac.source" value="1.3"/> - <property name="javac.target" value="1.3"/> + <property name="javac.source" value="5"/> + <property name="javac.target" value="5"/> <property name="javac.debug" value="true"/> <!-- junit task properties --> <property name="junit.fork" value="yes"/> - <!-- some library paths --> - <!-- where is JAXP? property name="${xmlxsl.lib}" location="."/ --> - <!-- Docbook related properties, macros and targets --> <import file="docbook.xml"/> <target name="-props"> - <available property="jaxp13+" classname="javax.xml.xpath.XPath"/> - <condition property="jaxp13+.impl"> - <and> - <isset property="jaxp13+"/> - <available classname="java.net.Proxy"/> - </and> - </condition> <available property="regexp.present" classname="java.util.regex.Matcher"/> </target> <target name="-init" depends="-props"> <mkdir dir="${lib.dir}"/> - <mkdir dir="${out.dir}"/> + <mkdir dir="${core.out.dir}"/> + <mkdir dir="${legacy.out.dir}"/> <mkdir dir="${test.out.dir}"/> <mkdir dir="${test.report.dir}"/> <mkdir dir="${dist.dir}"/> @@ -91,7 +67,8 @@ description="removes created directories"> <delete includeEmptyDirs="true" quiet="true"> <fileset dir="${lib.dir}"/> - <fileset dir="${out.dir}"/> + <fileset dir="${core.out.dir}"/> + <fileset dir="${legacy.out.dir}"/> <fileset dir="${test.out.dir}"/> <fileset dir="${test.report.dir}"/> <fileset dir="${dist.dir}"/> @@ -101,27 +78,33 @@ </delete> </target> - <target name="compile" depends="-init" - description="compiles sources and tests"> - <javac srcdir="${src.dir}/legacy-java" destdir="${out.dir}" + <target name="compile-core" depends="-init" + description="compiles legacy sources and tests"> + <javac srcdir="${src.dir}/java-core" destdir="${core.out.dir}" + debug="${javac.debug}" target="${javac.target}" + source="${javac.source}"> + </javac> + </target> + + <target name="compile" depends="compile-core" + description="compiles legacy sources and tests"> + <javac srcdir="${src.dir}/legacy-java" destdir="${legacy.out.dir}" debug="${javac.debug}" target="${javac.target}" source="${javac.source}"> <classpath> - <pathelement location="${xmlxsl.lib}"/> + <pathelement location="${core.out.dir}"/> <pathelement path="${java.class.path}"/> <fileset dir="lib" includes="*.jar"/> </classpath> - <exclude name="**/jaxp13/**" unless="jaxp13+"/> <exclude name="**/*XPathRegexAssert.java" unless="regexp.present"/> </javac> <javac srcdir="${test.dir}/legacy-java" destdir="${test.out.dir}" debug="${javac.debug}" target="${javac.target}" source="${javac.source}"> <classpath> - <pathelement location="${out.dir}"/> - <pathelement location="${xmlxsl.lib}"/> + <pathelement location="${core.out.dir}"/> + <pathelement location="${legacy.out.dir}"/> <pathelement path="${java.class.path}"/> <fileset dir="lib" includes="*.jar"/> </classpath> - <exclude name="**/jaxp13/**" unless="jaxp13+"/> <exclude name="**/*XPathRegexAssert.java" unless="regexp.present"/> </javac> </target> @@ -141,9 +124,9 @@ value="org.apache.xalan.processor.TransformerFactoryImpl"/> --> <classpath> - <pathelement location="${out.dir}"/> + <pathelement location="${core.out.dir}"/> + <pathelement location="${legacy.out.dir}"/> <pathelement location="${test.out.dir}"/> - <pathelement location="${xmlxsl.lib}"/> <pathelement path="${java.class.path}"/> <fileset dir="lib" includes="*.jar"/> </classpath> @@ -151,7 +134,6 @@ <batchtest todir="${test.report.dir}"> <fileset dir="${test.dir}/legacy-java"> <include name="**/test_*.java"/> - <exclude name="**/jaxp13/**" unless="jaxp13+.impl"/> </fileset> </batchtest> </junit> @@ -202,9 +184,16 @@ <target name="jar" depends="compile" description="creates jar, Maven2 POM and Ivy file"> - <jar jarfile="${lib.dir}/xmlunit-${xmlunit.version}.jar" - basedir="${out.dir}" + <jar jarfile="${lib.dir}/xmlunit-core-${xmlunit.version}.jar" + basedir="${core.out.dir}" /> + <jar jarfile="${lib.dir}/xmlunit-legacy-${xmlunit.version}.jar" + basedir="${legacy.out.dir}" + /> + <jar jarfile="${lib.dir}/xmlunit-sumo-${xmlunit.version}.jar"> + <fileset dir="${core.out.dir}"/> + <fileset dir="${legacy.out.dir}"/> + </jar> <tstamp> <format property="ivy.publication.datetime" pattern="yyyyMMddHHmmss"/> @@ -282,7 +271,7 @@ <javac srcdir="src/user-guide" includes="org/" destdir="${userguide.out.dir}" source="1.3" target="1.2"> <classpath> - <pathelement location="${out.dir}"/> + <pathelement location="${legacy.out.dir}"/> </classpath> </javac> <delete dir="${userguide.out.dir}"/> Added: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java (rev 0) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2009-05-04 15:10:48 UTC (rev 309) @@ -0,0 +1,44 @@ +/* + Licensed to the XMLUnit developers under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + This file is licensed to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +package net.sf.xmlunit.builder; + +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMSource; +import org.w3c.dom.Document; + +public class Input { + + public static interface Builder { + Source build(); + } + + private static class DOMBuilder implements Builder { + private final Source source; + private DOMBuilder(Document d) { + source = new DOMSource(d); + } + public Source build() { + assert source != null; + return source; + } + } + + public static Builder fromDocument(Document d) { + return new DOMBuilder(d); + } +} + \ No newline at end of file Property changes on: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java ___________________________________________________________________ Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-05-04 14:20:03
|
Revision: 308 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=308&view=rev Author: bodewig Date: 2009-05-04 14:19:57 +0000 (Mon, 04 May 2009) Log Message: ----------- Maxim Filimonov's CLA, decrypt it by using OpenPGP and my public key Added Paths: ----------- legal/clas/filimonov.zip.signed Added: legal/clas/filimonov.zip.signed =================================================================== (Binary files differ) Property changes on: legal/clas/filimonov.zip.signed ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: SourceForge.net <no...@so...> - 2009-04-30 14:26:18
|
Bugs item #1952324, was opened at 2008-04-26 17:45 Message generated for change (Settings changed) made by bodewig You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=377768&aid=1952324&group_id=23187 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: .NET 0.3.1 >Status: Pending Resolution: Wont Fix Priority: 5 Private: No Submitted By: Steve Wagner (ciroque) Assigned to: Nobody/Anonymous (nobody) Summary: Specific Version reference to nunit.framework.dll Initial Comment: Apparently the library was compiled such that it requires version 2.4.6 of the NUnit Framework assembly. We have upgraded to 2.4.7 and rolling back is not a viable option. While I can rebuild the sasembly it would get quite tedious to do that with every upgrade of the library. Thanks! ---------------------------------------------------------------------- Comment By: Stefan Bodewig (bodewig) Date: 2009-04-30 16:25 Message: As long as NUnit has a strong name, there isn't much we can do - except for telling people to compile their own version of XMLUnit. XMLUnit 0.4 is compiled against 2.4.8. ---------------------------------------------------------------------- Comment By: Stefan Bodewig (bodewig) Date: 2008-06-05 13:20 Message: Logged In: YES user_id=113148 Originator: NO XMLUnit 0.3.1 has been compiled against NUnit 2.4.6 and we get the "hard reference" to it because NUnit 2.4.x is strongly named (2.2.x hasn't been that#s why XMLUnit 0.3 never showed the same symptoms). In theory a binding redirect should work, in practice it doesn't work for me. See http://sourceforge.net/mailarchive/forum.php?thread_name=y1u4p8garz2.fsf%40v30161.1blu.de&forum_name=nunit-users ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=377768&aid=1952324&group_id=23187 |
From: SourceForge.net <no...@so...> - 2009-04-30 14:25:29
|
Bugs item #1952324, was opened at 2008-04-26 17:45 Message generated for change (Settings changed) made by bodewig You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=377768&aid=1952324&group_id=23187 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: .NET 0.3.1 Status: Open >Resolution: Wont Fix Priority: 5 Private: No Submitted By: Steve Wagner (ciroque) Assigned to: Nobody/Anonymous (nobody) Summary: Specific Version reference to nunit.framework.dll Initial Comment: Apparently the library was compiled such that it requires version 2.4.6 of the NUnit Framework assembly. We have upgraded to 2.4.7 and rolling back is not a viable option. While I can rebuild the sasembly it would get quite tedious to do that with every upgrade of the library. Thanks! ---------------------------------------------------------------------- >Comment By: Stefan Bodewig (bodewig) Date: 2009-04-30 16:25 Message: As long as NUnit has a strong name, there isn't much we can do - except for telling people to compile their own version of XMLUnit. XMLUnit 0.4 is compiled against 2.4.8. ---------------------------------------------------------------------- Comment By: Stefan Bodewig (bodewig) Date: 2008-06-05 13:20 Message: Logged In: YES user_id=113148 Originator: NO XMLUnit 0.3.1 has been compiled against NUnit 2.4.6 and we get the "hard reference" to it because NUnit 2.4.x is strongly named (2.2.x hasn't been that#s why XMLUnit 0.3 never showed the same symptoms). In theory a binding redirect should work, in practice it doesn't work for me. See http://sourceforge.net/mailarchive/forum.php?thread_name=y1u4p8garz2.fsf%40v30161.1blu.de&forum_name=nunit-users ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=377768&aid=1952324&group_id=23187 |
From: <bo...@us...> - 2009-04-30 12:35:23
|
Revision: 307 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=307&view=rev Author: bodewig Date: 2009-04-30 12:35:13 +0000 (Thu, 30 Apr 2009) Log Message: ----------- release .NET 0.4 Modified Paths: -------------- trunk/xmlunit/src/site/index.html Modified: trunk/xmlunit/src/site/index.html =================================================================== --- trunk/xmlunit/src/site/index.html 2009-04-30 11:20:19 UTC (rev 306) +++ trunk/xmlunit/src/site/index.html 2009-04-30 12:35:13 UTC (rev 307) @@ -105,7 +105,7 @@ <td colspan="2"> <p>The current release is <a href="https://sourceforge.net/project/showfiles.php?group_id=23187&package_id=91308">XmlUnit -.Net 0.3.1</a>, February 2008</p> +.Net 0.4</a>, April 2009</p> <p>XMLUnit for .Net provides NUnit extension classes written in C#, e.g. <code>XmlAssertion</code> and <code>XmlDiff</code>, that allow assertions to be made about the differences between two pieces of XML, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-04-30 11:20:30
|
Revision: 306 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=306&view=rev Author: bodewig Date: 2009-04-30 11:20:19 +0000 (Thu, 30 Apr 2009) Log Message: ----------- Tag XMLUnit .NET 0.4 Added Paths: ----------- tags/XMLUnit.NET-0.4/ tags/XMLUnit.NET-0.4/src/csharp/XmlDiff.cs Removed Paths: ------------- tags/XMLUnit.NET-0.4/src/csharp/XmlDiff.cs Deleted: tags/XMLUnit.NET-0.4/src/csharp/XmlDiff.cs =================================================================== --- branches/xmlunit-1.x/src/csharp/XmlDiff.cs 2009-04-30 10:37:32 UTC (rev 304) +++ tags/XMLUnit.NET-0.4/src/csharp/XmlDiff.cs 2009-04-30 11:20:19 UTC (rev 306) @@ -1,356 +0,0 @@ -namespace XmlUnit { - using System; - using System.Collections; - using System.IO; - using System.Xml; - using System.Xml.Schema; - - public class XmlDiff { - private const string XMLNS_PREFIX = "xmlns"; - - private readonly XmlInput controlInput; - private readonly XmlInput testInput; - private readonly DiffConfiguration _diffConfiguration; - private DiffResult _diffResult; - - public XmlDiff(XmlInput control, XmlInput test, - DiffConfiguration diffConfiguration) { - _diffConfiguration = diffConfiguration; - controlInput = control; - testInput = test; - } - - public XmlDiff(XmlInput control, XmlInput test) - : this(control, test, new DiffConfiguration()) { - } - - public XmlDiff(TextReader control, TextReader test) - : this(new XmlInput(control), new XmlInput(test)) { - } - - public XmlDiff(string control, string test) - : this(new XmlInput(control), new XmlInput(test)) { - } - - private XmlReader CreateXmlReader(XmlInput forInput) { - XmlReader xmlReader = forInput.CreateXmlReader(); - - if (xmlReader is XmlTextReader) { - ((XmlTextReader) xmlReader ).WhitespaceHandling = _diffConfiguration.WhitespaceHandling; - } - - if (_diffConfiguration.UseValidatingParser) { - XmlValidatingReader validatingReader = new XmlValidatingReader(xmlReader); - return validatingReader; - } - - return xmlReader; - } - - public DiffResult Compare() { - if (_diffResult == null) { - _diffResult = new DiffResult(); - using (XmlReader controlReader = CreateXmlReader(controlInput)) - using (XmlReader testReader = CreateXmlReader(testInput)) { - if (!controlInput.Equals(testInput)) { - Compare(_diffResult, controlReader, testReader); - } - } - } - return _diffResult; - } - - private void Compare(DiffResult result, XmlReader controlReader, - XmlReader testReader) { - try { - ReaderWithState control = new ReaderWithState(controlReader); - ReaderWithState test = new ReaderWithState(testReader); - do { - control.Read(); - test.Read(); - Compare(result, control, test); - } while (control.HasRead && test.HasRead) ; - } catch (FlowControlException e) { - Console.Out.WriteLine(e.Message); - } - } - - private void Compare(DiffResult result, ReaderWithState control, - ReaderWithState test) { - if (control.HasRead) { - if (test.HasRead) { - CompareNodes(result, control, test); - CheckEmptyOrAtEndElement(result, control, test); - } else { - DifferenceFound(DifferenceType.CHILD_NODELIST_LENGTH_ID, result); - } - } - } - - private void CompareNodes(DiffResult result, ReaderWithState control, - ReaderWithState test) { - XmlNodeType controlNodeType = control.Reader.NodeType; - XmlNodeType testNodeType = test.Reader.NodeType; - if (!controlNodeType.Equals(testNodeType)) { - CheckNodeTypes(controlNodeType, testNodeType, result, - control, test); - } else if (controlNodeType == XmlNodeType.Element) { - CompareElements(result, control, test); - } else if (controlNodeType == XmlNodeType.Text) { - CompareText(result, control, test); - } - } - - private void CheckNodeTypes(XmlNodeType controlNodeType, - XmlNodeType testNodeType, - DiffResult result, - ReaderWithState control, - ReaderWithState test) { - ReaderWithState readerToAdvance = null; - if (controlNodeType.Equals(XmlNodeType.XmlDeclaration)) { - readerToAdvance = control; - } else if (testNodeType.Equals(XmlNodeType.XmlDeclaration)) { - readerToAdvance = test; - } - - if (readerToAdvance != null) { - DifferenceFound(DifferenceType.HAS_XML_DECLARATION_PREFIX_ID, - controlNodeType, testNodeType, result); - readerToAdvance.Read(); - CompareNodes(result, control, test); - } else { - DifferenceFound(DifferenceType.NODE_TYPE_ID, controlNodeType, - testNodeType, result); - } - } - - private void CompareElements(DiffResult result, ReaderWithState control, - ReaderWithState test) { - string controlTagName = control.Reader.Name; - string testTagName = test.Reader.Name; - if (!String.Equals(controlTagName, testTagName)) { - DifferenceFound(DifferenceType.ELEMENT_TAG_NAME_ID, result); - } else { - XmlAttribute[] controlAttributes = - GetNonSpecialAttributes(control); - XmlAttribute[] testAttributes = GetNonSpecialAttributes(test); - if (controlAttributes.Length != testAttributes.Length) { - DifferenceFound(DifferenceType.ELEMENT_NUM_ATTRIBUTES_ID, result); - } - CompareAttributes(result, controlAttributes, testAttributes); - } - } - - private void CompareAttributes(DiffResult result, - XmlAttribute[] controlAttributes, - XmlAttribute[] testAttributes) { - ArrayList unmatchedTestAttributes = new ArrayList(); - unmatchedTestAttributes.AddRange(testAttributes); - for (int i=0; i < controlAttributes.Length; ++i) { - - bool controlIsInNs = IsNamespaced(controlAttributes[i]); - string controlAttrName = - GetUnNamespacedNodeName(controlAttributes[i]); - XmlAttribute testAttr = null; - if (!controlIsInNs) { - testAttr = FindAttributeByName(testAttributes, - controlAttrName); - } else { - testAttr = FindAttributeByNameAndNs(testAttributes, - controlAttrName, - controlAttributes[i] - .NamespaceURI); - } - - if (testAttr != null) { - unmatchedTestAttributes.Remove(testAttr); - if (!_diffConfiguration.IgnoreAttributeOrder - && testAttr != testAttributes[i]) { - DifferenceFound(DifferenceType.ATTR_SEQUENCE_ID, - result); - } - - if (controlAttributes[i].Value != testAttr.Value) { - DifferenceFound(DifferenceType.ATTR_VALUE_ID, result); - } - - } else { - DifferenceFound(DifferenceType.ATTR_NAME_NOT_FOUND_ID, - result); - } - } - foreach (XmlAttribute a in unmatchedTestAttributes) { - DifferenceFound(DifferenceType.ATTR_NAME_NOT_FOUND_ID, result); - } - } - - private void CompareText(DiffResult result, ReaderWithState control, - ReaderWithState test) { - string controlText = control.Reader.Value; - string testText = test.Reader.Value; - if (!String.Equals(controlText, testText)) { - DifferenceFound(DifferenceType.TEXT_VALUE_ID, result); - } - } - - private void DifferenceFound(DifferenceType differenceType, DiffResult result) { - DifferenceFound(new Difference(differenceType), result); - } - - private void DifferenceFound(Difference difference, DiffResult result) { - result.DifferenceFound(this, difference); - if (!ContinueComparison(difference)) { - throw new FlowControlException(difference); - } - } - - private void DifferenceFound(DifferenceType differenceType, - XmlNodeType controlNodeType, - XmlNodeType testNodeType, - DiffResult result) { - DifferenceFound(new Difference(differenceType, controlNodeType, testNodeType), - result); - } - - private bool ContinueComparison(Difference afterDifference) { - return !afterDifference.MajorDifference; - } - - private void CheckEmptyOrAtEndElement(DiffResult result, - ReaderWithState control, - ReaderWithState test) { - if (control.LastElementWasEmpty) { - if (!test.LastElementWasEmpty) { - CheckEndElement(test, result); - } - } else { - if (test.LastElementWasEmpty) { - CheckEndElement(control, result); - } - } - } - - private XmlAttribute[] GetNonSpecialAttributes(ReaderWithState r) { - ArrayList l = new ArrayList(); - int length = r.Reader.AttributeCount; - if (length > 0) { - XmlDocument doc = new XmlDocument(); - r.Reader.MoveToFirstAttribute(); - for (int i = 0; i < length; i++) { - XmlAttribute a = doc.CreateAttribute(r.Reader.Name, - r.Reader.NamespaceURI); - if (!IsXMLNSAttribute(a)) { - a.Value = r.Reader.Value; - l.Add(a); - } - r.Reader.MoveToNextAttribute(); - } - } - return (XmlAttribute[]) l.ToArray(typeof(XmlAttribute)); - } - - private bool IsXMLNSAttribute(XmlAttribute attribute) { - return XMLNS_PREFIX == attribute.Prefix || - XMLNS_PREFIX == attribute.Name; - } - - private XmlAttribute FindAttributeByName(XmlAttribute[] attrs, - string name) { - foreach (XmlAttribute a in attrs) { - if (GetUnNamespacedNodeName(a) == name) { - return a; - } - } - return null; - } - - private XmlAttribute FindAttributeByNameAndNs(XmlAttribute[] attrs, - string name, - string nsUri) { - foreach (XmlAttribute a in attrs) { - if (GetUnNamespacedNodeName(a) == name - && a.NamespaceURI == nsUri) { - return a; - } - } - return null; - } - - private string GetUnNamespacedNodeName(XmlNode aNode) { - return GetUnNamespacedNodeName(aNode, IsNamespaced(aNode)); - } - - private string GetUnNamespacedNodeName(XmlNode aNode, - bool isNamespacedNode) { - if (isNamespacedNode) { - return aNode.LocalName; - } - return aNode.Name; - } - - private bool IsNamespaced(XmlNode aNode) { - string ns = aNode.NamespaceURI; - return ns != null && ns.Length > 0; - } - - private void CheckEndElement(ReaderWithState reader, DiffResult result) { - bool readResult = reader.Read(); - if (!readResult - || reader.Reader.NodeType != XmlNodeType.EndElement) { - DifferenceFound(DifferenceType.CHILD_NODELIST_LENGTH_ID, result); - } - } - - public string OptionalDescription { - get { - return _diffConfiguration.Description; - } - } - - private class FlowControlException : ApplicationException { - public FlowControlException(Difference cause) : base(cause.ToString()) { - } - } - - private class ReaderWithState { - internal ReaderWithState(XmlReader reader) { - Reader = reader; - HasRead = false; - LastElementWasEmpty = false; - } - - internal readonly XmlReader Reader; - internal bool HasRead; - internal bool LastElementWasEmpty; - - internal bool Read() { - HasRead = Reader.Read(); - if (HasRead) { - switch (Reader.NodeType) { - case XmlNodeType.Element: - LastElementWasEmpty = Reader.IsEmptyElement; - break; - case XmlNodeType.EndElement: - LastElementWasEmpty = false; - break; - default: - // don't care - break; - } - } - return HasRead; - } - - internal string State { - get { - return string.Format("Name {0}, NodeType {1}, IsEmpty {2}," - + " HasRead {3}, LastWasEmpty {4}", - Reader.Name, - Reader.NodeType, - Reader.IsEmptyElement, - HasRead, LastElementWasEmpty); - } - } - } - } -} Copied: tags/XMLUnit.NET-0.4/src/csharp/XmlDiff.cs (from rev 305, branches/xmlunit-1.x/src/csharp/XmlDiff.cs) =================================================================== --- tags/XMLUnit.NET-0.4/src/csharp/XmlDiff.cs (rev 0) +++ tags/XMLUnit.NET-0.4/src/csharp/XmlDiff.cs 2009-04-30 11:20:19 UTC (rev 306) @@ -0,0 +1,369 @@ +namespace XmlUnit { + using System; + using System.Collections; + using System.IO; + using System.Xml; + using System.Xml.Schema; + + public class XmlDiff { + private const string XMLNS_PREFIX = "xmlns"; + + private readonly XmlInput controlInput; + private readonly XmlInput testInput; + private readonly DiffConfiguration _diffConfiguration; + private DiffResult _diffResult; + + public XmlDiff(XmlInput control, XmlInput test, + DiffConfiguration diffConfiguration) { + _diffConfiguration = diffConfiguration; + controlInput = control; + testInput = test; + } + + public XmlDiff(XmlInput control, XmlInput test) + : this(control, test, new DiffConfiguration()) { + } + + public XmlDiff(TextReader control, TextReader test) + : this(new XmlInput(control), new XmlInput(test)) { + } + + public XmlDiff(string control, string test) + : this(new XmlInput(control), new XmlInput(test)) { + } + + private XmlReader CreateXmlReader(XmlInput forInput) { + XmlReader xmlReader = forInput.CreateXmlReader(); + + if (xmlReader is XmlTextReader) { + ((XmlTextReader) xmlReader ).WhitespaceHandling = _diffConfiguration.WhitespaceHandling; + } + + if (_diffConfiguration.UseValidatingParser) { + XmlValidatingReader validatingReader = new XmlValidatingReader(xmlReader); + return validatingReader; + } + + return xmlReader; + } + + public DiffResult Compare() { + if (_diffResult == null) { + _diffResult = new DiffResult(); + XmlReader controlReader, testReader; + controlReader = testReader = null; + try { + controlReader = CreateXmlReader(controlInput); + testReader = CreateXmlReader(testInput); + if (!controlInput.Equals(testInput)) { + Compare(_diffResult, controlReader, testReader); + } + } finally { + try { + if (testReader != null) { + testReader.Close(); + } + } finally { + if (controlReader != null) { + controlReader.Close(); + } + } + } + } + return _diffResult; + } + + private void Compare(DiffResult result, XmlReader controlReader, + XmlReader testReader) { + try { + ReaderWithState control = new ReaderWithState(controlReader); + ReaderWithState test = new ReaderWithState(testReader); + do { + control.Read(); + test.Read(); + Compare(result, control, test); + } while (control.HasRead && test.HasRead) ; + } catch (FlowControlException e) { + Console.Out.WriteLine(e.Message); + } + } + + private void Compare(DiffResult result, ReaderWithState control, + ReaderWithState test) { + if (control.HasRead) { + if (test.HasRead) { + CompareNodes(result, control, test); + CheckEmptyOrAtEndElement(result, control, test); + } else { + DifferenceFound(DifferenceType.CHILD_NODELIST_LENGTH_ID, result); + } + } + } + + private void CompareNodes(DiffResult result, ReaderWithState control, + ReaderWithState test) { + XmlNodeType controlNodeType = control.Reader.NodeType; + XmlNodeType testNodeType = test.Reader.NodeType; + if (!controlNodeType.Equals(testNodeType)) { + CheckNodeTypes(controlNodeType, testNodeType, result, + control, test); + } else if (controlNodeType == XmlNodeType.Element) { + CompareElements(result, control, test); + } else if (controlNodeType == XmlNodeType.Text) { + CompareText(result, control, test); + } + } + + private void CheckNodeTypes(XmlNodeType controlNodeType, + XmlNodeType testNodeType, + DiffResult result, + ReaderWithState control, + ReaderWithState test) { + ReaderWithState readerToAdvance = null; + if (controlNodeType.Equals(XmlNodeType.XmlDeclaration)) { + readerToAdvance = control; + } else if (testNodeType.Equals(XmlNodeType.XmlDeclaration)) { + readerToAdvance = test; + } + + if (readerToAdvance != null) { + DifferenceFound(DifferenceType.HAS_XML_DECLARATION_PREFIX_ID, + controlNodeType, testNodeType, result); + readerToAdvance.Read(); + CompareNodes(result, control, test); + } else { + DifferenceFound(DifferenceType.NODE_TYPE_ID, controlNodeType, + testNodeType, result); + } + } + + private void CompareElements(DiffResult result, ReaderWithState control, + ReaderWithState test) { + string controlTagName = control.Reader.Name; + string testTagName = test.Reader.Name; + if (!String.Equals(controlTagName, testTagName)) { + DifferenceFound(DifferenceType.ELEMENT_TAG_NAME_ID, result); + } else { + XmlAttribute[] controlAttributes = + GetNonSpecialAttributes(control); + XmlAttribute[] testAttributes = GetNonSpecialAttributes(test); + if (controlAttributes.Length != testAttributes.Length) { + DifferenceFound(DifferenceType.ELEMENT_NUM_ATTRIBUTES_ID, result); + } + CompareAttributes(result, controlAttributes, testAttributes); + } + } + + private void CompareAttributes(DiffResult result, + XmlAttribute[] controlAttributes, + XmlAttribute[] testAttributes) { + ArrayList unmatchedTestAttributes = new ArrayList(); + unmatchedTestAttributes.AddRange(testAttributes); + for (int i=0; i < controlAttributes.Length; ++i) { + + bool controlIsInNs = IsNamespaced(controlAttributes[i]); + string controlAttrName = + GetUnNamespacedNodeName(controlAttributes[i]); + XmlAttribute testAttr = null; + if (!controlIsInNs) { + testAttr = FindAttributeByName(testAttributes, + controlAttrName); + } else { + testAttr = FindAttributeByNameAndNs(testAttributes, + controlAttrName, + controlAttributes[i] + .NamespaceURI); + } + + if (testAttr != null) { + unmatchedTestAttributes.Remove(testAttr); + if (!_diffConfiguration.IgnoreAttributeOrder + && testAttr != testAttributes[i]) { + DifferenceFound(DifferenceType.ATTR_SEQUENCE_ID, + result); + } + + if (controlAttributes[i].Value != testAttr.Value) { + DifferenceFound(DifferenceType.ATTR_VALUE_ID, result); + } + + } else { + DifferenceFound(DifferenceType.ATTR_NAME_NOT_FOUND_ID, + result); + } + } + foreach (XmlAttribute a in unmatchedTestAttributes) { + DifferenceFound(DifferenceType.ATTR_NAME_NOT_FOUND_ID, result); + } + } + + private void CompareText(DiffResult result, ReaderWithState control, + ReaderWithState test) { + string controlText = control.Reader.Value; + string testText = test.Reader.Value; + if (!String.Equals(controlText, testText)) { + DifferenceFound(DifferenceType.TEXT_VALUE_ID, result); + } + } + + private void DifferenceFound(DifferenceType differenceType, DiffResult result) { + DifferenceFound(new Difference(differenceType), result); + } + + private void DifferenceFound(Difference difference, DiffResult result) { + result.DifferenceFound(this, difference); + if (!ContinueComparison(difference)) { + throw new FlowControlException(difference); + } + } + + private void DifferenceFound(DifferenceType differenceType, + XmlNodeType controlNodeType, + XmlNodeType testNodeType, + DiffResult result) { + DifferenceFound(new Difference(differenceType, controlNodeType, testNodeType), + result); + } + + private bool ContinueComparison(Difference afterDifference) { + return !afterDifference.MajorDifference; + } + + private void CheckEmptyOrAtEndElement(DiffResult result, + ReaderWithState control, + ReaderWithState test) { + if (control.LastElementWasEmpty) { + if (!test.LastElementWasEmpty) { + CheckEndElement(test, result); + } + } else { + if (test.LastElementWasEmpty) { + CheckEndElement(control, result); + } + } + } + + private XmlAttribute[] GetNonSpecialAttributes(ReaderWithState r) { + ArrayList l = new ArrayList(); + int length = r.Reader.AttributeCount; + if (length > 0) { + XmlDocument doc = new XmlDocument(); + r.Reader.MoveToFirstAttribute(); + for (int i = 0; i < length; i++) { + XmlAttribute a = doc.CreateAttribute(r.Reader.Name, + r.Reader.NamespaceURI); + if (!IsXMLNSAttribute(a)) { + a.Value = r.Reader.Value; + l.Add(a); + } + r.Reader.MoveToNextAttribute(); + } + } + return (XmlAttribute[]) l.ToArray(typeof(XmlAttribute)); + } + + private bool IsXMLNSAttribute(XmlAttribute attribute) { + return XMLNS_PREFIX == attribute.Prefix || + XMLNS_PREFIX == attribute.Name; + } + + private XmlAttribute FindAttributeByName(XmlAttribute[] attrs, + string name) { + foreach (XmlAttribute a in attrs) { + if (GetUnNamespacedNodeName(a) == name) { + return a; + } + } + return null; + } + + private XmlAttribute FindAttributeByNameAndNs(XmlAttribute[] attrs, + string name, + string nsUri) { + foreach (XmlAttribute a in attrs) { + if (GetUnNamespacedNodeName(a) == name + && a.NamespaceURI == nsUri) { + return a; + } + } + return null; + } + + private string GetUnNamespacedNodeName(XmlNode aNode) { + return GetUnNamespacedNodeName(aNode, IsNamespaced(aNode)); + } + + private string GetUnNamespacedNodeName(XmlNode aNode, + bool isNamespacedNode) { + if (isNamespacedNode) { + return aNode.LocalName; + } + return aNode.Name; + } + + private bool IsNamespaced(XmlNode aNode) { + string ns = aNode.NamespaceURI; + return ns != null && ns.Length > 0; + } + + private void CheckEndElement(ReaderWithState reader, DiffResult result) { + bool readResult = reader.Read(); + if (!readResult + || reader.Reader.NodeType != XmlNodeType.EndElement) { + DifferenceFound(DifferenceType.CHILD_NODELIST_LENGTH_ID, result); + } + } + + public string OptionalDescription { + get { + return _diffConfiguration.Description; + } + } + + private class FlowControlException : ApplicationException { + public FlowControlException(Difference cause) : base(cause.ToString()) { + } + } + + private class ReaderWithState { + internal ReaderWithState(XmlReader reader) { + Reader = reader; + HasRead = false; + LastElementWasEmpty = false; + } + + internal readonly XmlReader Reader; + internal bool HasRead; + internal bool LastElementWasEmpty; + + internal bool Read() { + HasRead = Reader.Read(); + if (HasRead) { + switch (Reader.NodeType) { + case XmlNodeType.Element: + LastElementWasEmpty = Reader.IsEmptyElement; + break; + case XmlNodeType.EndElement: + LastElementWasEmpty = false; + break; + default: + // don't care + break; + } + } + return HasRead; + } + + internal string State { + get { + return string.Format("Name {0}, NodeType {1}, IsEmpty {2}," + + " HasRead {3}, LastWasEmpty {4}", + Reader.Name, + Reader.NodeType, + Reader.IsEmptyElement, + HasRead, LastElementWasEmpty); + } + } + } + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-04-30 11:15:38
|
Revision: 305 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=305&view=rev Author: bodewig Date: 2009-04-30 11:15:28 +0000 (Thu, 30 Apr 2009) Log Message: ----------- XmlReader is not IDisposable in .NET 1.1 Modified Paths: -------------- branches/xmlunit-1.x/src/csharp/XmlDiff.cs Modified: branches/xmlunit-1.x/src/csharp/XmlDiff.cs =================================================================== --- branches/xmlunit-1.x/src/csharp/XmlDiff.cs 2009-04-30 10:37:32 UTC (rev 304) +++ branches/xmlunit-1.x/src/csharp/XmlDiff.cs 2009-04-30 11:15:28 UTC (rev 305) @@ -50,11 +50,24 @@ public DiffResult Compare() { if (_diffResult == null) { _diffResult = new DiffResult(); - using (XmlReader controlReader = CreateXmlReader(controlInput)) - using (XmlReader testReader = CreateXmlReader(testInput)) { + XmlReader controlReader, testReader; + controlReader = testReader = null; + try { + controlReader = CreateXmlReader(controlInput); + testReader = CreateXmlReader(testInput); if (!controlInput.Equals(testInput)) { Compare(_diffResult, controlReader, testReader); } + } finally { + try { + if (testReader != null) { + testReader.Close(); + } + } finally { + if (controlReader != null) { + controlReader.Close(); + } + } } } return _diffResult; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-04-30 10:37:43
|
Revision: 304 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=304&view=rev Author: bodewig Date: 2009-04-30 10:37:32 +0000 (Thu, 30 Apr 2009) Log Message: ----------- My CLA, in order to view it, PGP-decrypt the file using my public key (found in the KEYS file), it is a ZIP containing three PNGs Added Paths: ----------- legal/clas/bodewig.zip.signed Added: legal/clas/bodewig.zip.signed =================================================================== (Binary files differ) Property changes on: legal/clas/bodewig.zip.signed ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-04-27 14:37:30
|
Revision: 303 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=303&view=rev Author: bodewig Date: 2009-04-27 14:37:27 +0000 (Mon, 27 Apr 2009) Log Message: ----------- the Individual Contributors License Agreement Added Paths: ----------- legal/icla.txt Added: legal/icla.txt =================================================================== --- legal/icla.txt (rev 0) +++ legal/icla.txt 2009-04-27 14:37:27 UTC (rev 303) @@ -0,0 +1,140 @@ + Individual Contributor License Agreement ("Agreement") V2.0 + http://www.apache.org/licenses/ + +Thank you for your interest in XMLUnit project. + +In order to clarify the intellectual property license granted with +Contributions from any person or entity, the developers of the XMLUnit +project must have a Contributor License Agreement ("CLA") on file that +has been signed by each Contributor, indicating agreement to the +license terms below. This license is for your protection as a +Contributor as well as the protection of its users; it does not change +your rights to use your own Contributions for any other purpose. If +you have not already done so, please complete and send an original +signed Agreement to a project administrator of XMLUnit's sourceforge +project - either as a scanned document via email or by mail. A list +of project administrators and their postal addresses can be found +at https://xmlunit.svn.sourceforge.net/svnroot/xmlunit/legal/admins.html + +Please read this document carefully before signing and keep a copy for +your records. + + Full name: ______________________________________________________ + + Mailing Address: ________________________________________________ + + _________________________________________________________________ + + _________________________________________________________________ + + Country: ______________________________________________________ + + Telephone: ______________________________________________________ + + Facsimile: ______________________________________________________ + + E-Mail: ______________________________________________________ + +You accept and agree to the following terms and conditions for Your +present and future Contributions submitted to the project. In return, +the project's developers shall not use Your Contributions in a way +that is contrary to the public benefit. Except for the license granted +herein to the developers of the project and recipients of software +distributed by them, You reserve all right, title, and interest in and +to Your Contributions. + +1. Definitions. + + "You" (or "Your") shall mean the copyright owner or legal entity + authorized by the copyright owner that is making this Agreement + with the developers of the project. For legal entities, the entity + making a Contribution and all other entities that control, are + controlled by, or are under common control with that entity are + considered to be a single Contributor. For the purposes of this + definition, "control" means (i) the power, direct or indirect, to + cause the direction or management of such entity, whether by + contract or otherwise, or (ii) ownership of fifty percent (50%) or + more of the outstanding shares, or (iii) beneficial ownership of + such entity. + + "Contribution" shall mean any original work of authorship, + including any modifications or additions to an existing work, that + is intentionally submitted by You to the developers for inclusion + in, or documentation of, any of the products owned or managed by + them (the "Work"). For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the XMLUnit project or its representatives, including but not + limited to communication on electronic mailing lists, source code + control systems, and issue tracking systems that are managed by, or + on behalf of, the project for the purpose of discussing and + improving the Work, but excluding communication that is + conspicuously marked or otherwise designated in writing by You as + "Not a Contribution." + +2. Grant of Copyright License. Subject to the terms and conditions of + this Agreement, You hereby grant to the developers of the XMLUnit + project and to recipients of software distributed by them a + perpetual, worldwide, non-exclusive, no-charge, royalty-free, + irrevocable copyright license to reproduce, prepare derivative + works of, publicly display, publicly perform, sublicense, and + distribute Your Contributions and such derivative works. + +3. Grant of Patent License. Subject to the terms and conditions of + this Agreement, You hereby grant to the developers of the XMLUnit + project and to + recipients of software distributed by them a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have + made, use, offer to sell, sell, import, and otherwise transfer the + Work, where such license applies only to those patent claims + licensable by You that are necessarily infringed by Your + Contribution(s) alone or by combination of Your Contribution(s) + with the Work to which such Contribution(s) was submitted. If any + entity institutes patent litigation against You or any other entity + (including a cross-claim or counterclaim in a lawsuit) alleging + that your Contribution, or the Work to which you have contributed, + constitutes direct or contributory patent infringement, then any + patent licenses granted to that entity under this Agreement for + that Contribution or Work shall terminate as of the date such + litigation is filed. + +4. You represent that you are legally entitled to grant the above + license. If your employer(s) has rights to intellectual property + that you create that includes your Contributions, you represent + that you have received permission to make Contributions on behalf + of that employer, that your employer has waived such rights for + your Contributions to the developers of the XMLUnit project, or + that your employer has executed a separate Corporate CLA with them. + +5. You represent that each of Your Contributions is Your original + creation (see section 7 for submissions on behalf of others). You + represent that Your Contribution submissions include complete + details of any third-party license or other restriction (including, + but not limited to, related patents and trademarks) of which you + are personally aware and which are associated with any part of Your + Contributions. + +6. You are not expected to provide support for Your Contributions, + except to the extent You desire to provide support. You may provide + support for free, for a fee, or not at all. Unless required by + applicable law or agreed to in writing, You provide Your + Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS + OF ANY KIND, either express or implied, including, without + limitation, any warranties or conditions of TITLE, NON- + INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. + +7. Should You wish to submit work that is not Your original creation, + You may submit it to the developers of the XMLUnit project + separately from any Contribution, identifying the complete details + of its source and of any license or other restriction (including, + but not limited to, related patents, trademarks, and license + agreements) of which you are personally aware, and conspicuously + marking the work as "Submitted on behalf of a third-party: [named + here]". + +8. You agree to notify the developers of the XMLUnit project of any + facts or circumstances of which you become aware that would make + these representations inaccurate in any respect. + + +Please sign: __________________________________ Date: ________________ Property changes on: legal/icla.txt ___________________________________________________________________ Added: svn:executable + * Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-04-27 14:28:30
|
Revision: 302 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=302&view=rev Author: bodewig Date: 2009-04-27 14:28:17 +0000 (Mon, 27 Apr 2009) Log Message: ----------- use HTML since svn's web-view doesn't like umlauts too much Added Paths: ----------- legal/admins.html legal/clas/ Removed Paths: ------------- legal/admins.txt Copied: legal/admins.html (from rev 301, legal/admins.txt) =================================================================== --- legal/admins.html (rev 0) +++ legal/admins.html 2009-04-27 14:28:17 UTC (rev 302) @@ -0,0 +1,15 @@ +<body> +<p>This is a list of people who can accept ICLAs for the XMLUnit project and add them to the repository.</p> + +<table> + <tr> + <th>Stefan Bodewig</th> + <td> +Postal-Address:<br/> +<br/> +Hehner Str. 198<br/> +D-41069 Mönchengladbach<br/> +Germany<br/> +</td></tr> +</table> +</body> Deleted: legal/admins.txt =================================================================== --- legal/admins.txt 2009-04-27 14:23:57 UTC (rev 301) +++ legal/admins.txt 2009-04-27 14:28:17 UTC (rev 302) @@ -1,8 +0,0 @@ -Stefan Bodewig -============== - -Postal-Address: - -Hehner Str. 198 -D-41069 M\xF6nchengladbach -Germany This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-04-27 14:24:05
|
Revision: 301 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=301&view=rev Author: bodewig Date: 2009-04-27 14:23:57 +0000 (Mon, 27 Apr 2009) Log Message: ----------- my address Added Paths: ----------- legal/ legal/admins.txt Added: legal/admins.txt =================================================================== --- legal/admins.txt (rev 0) +++ legal/admins.txt 2009-04-27 14:23:57 UTC (rev 301) @@ -0,0 +1,8 @@ +Stefan Bodewig +============== + +Postal-Address: + +Hehner Str. 198 +D-41069 M\xF6nchengladbach +Germany Property changes on: legal/admins.txt ___________________________________________________________________ Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-04-23 11:37:35
|
Revision: 300 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=300&view=rev Author: bodewig Date: 2009-04-23 11:37:34 +0000 (Thu, 23 Apr 2009) Log Message: ----------- Add NUnit 2.4.8 Modified Paths: -------------- trunk/xmlunit/xmlunit.nant.build Added Paths: ----------- trunk/xmlunit/lib/nunit.framework.dll Added: trunk/xmlunit/lib/nunit.framework.dll =================================================================== (Binary files differ) Property changes on: trunk/xmlunit/lib/nunit.framework.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/xmlunit/xmlunit.nant.build =================================================================== --- trunk/xmlunit/xmlunit.nant.build 2009-04-23 11:37:03 UTC (rev 299) +++ trunk/xmlunit/xmlunit.nant.build 2009-04-23 11:37:34 UTC (rev 300) @@ -14,7 +14,7 @@ <property name="nunit.v2.assembly" value="nunit.framework.dll" overwrite="false"/> <property name="nunit.v2.bin.dir" overwrite="false" - value="c:/apps/SharpDevelop/bin/nunit" /> + value="lib" /> <target name="init" description="prepare for other targets"> <mkdir dir="${bin.dir}"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |