Author: gdaniels
Date: Wed Mar 28 06:25:17 2007
New Revision: 523314
URL: http://svn.apache.org/viewvc?view=rev&rev=523314
Log:
Fix https://issues.apache.org/jira/browse/WSCOMMONS-141
Also introduce an equals(Object) override, and add a test. Someone with
greater Maven-fu than I have will hopefully help to get unit tests in this
module working.
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-dom/test/
webservices/commons/trunk/modules/axiom/modules/axiom-dom/test/org/
webservices/commons/trunk/modules/axiom/modules/axiom-dom/test/org/apache/
webservices/commons/trunk/modules/axiom/modules/axiom-dom/test/org/apache/axiom/
webservices/commons/trunk/modules/axiom/modules/axiom-dom/test/org/apache/axiom/om/
webservices/commons/trunk/modules/axiom/modules/axiom-dom/test/org/apache/axiom/om/impl/
webservices/commons/trunk/modules/axiom/modules/axiom-dom/test/org/apache/axiom/om/impl/dom/
webservices/commons/trunk/modules/axiom/modules/axiom-dom/test/org/apache/axiom/om/impl/dom/NamespaceTest.java
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-dom/pom.xml
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamespaceImpl.java
Modified: webservices/commons/trunk/modules/axiom/modules/axiom-dom/pom.xml
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/pom.xml?view=diff&rev=523314&r1=523313&r2=523314
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-dom/pom.xml (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-dom/pom.xml Wed Mar
28 06:25:17 2007
@@ -25,6 +25,10 @@
<artifactId>mail</artifactId>
</dependency>
<dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
@@ -33,4 +37,16 @@
<artifactId>stax-api</artifactId>
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>**/*Test.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java?view=diff&rev=523314&r1=523313&r2=523314
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java
(original)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java
Wed Mar 28 06:25:17 2007
@@ -191,14 +191,16 @@
public Element createElementNS(String ns, String qualifiedName)
throws DOMException {
+ if (ns == null) ns = "";
+
String localName = DOMUtil.getLocalName(qualifiedName);
String prefix = DOMUtil.getPrefix(qualifiedName);
- if (ns != null && (prefix != null || "".equals(prefix))) {
+ if (prefix != null || "".equals(prefix)) {
this.checkQName(prefix, localName);
}
- NamespaceImpl namespace = new NamespaceImpl(ns, prefix == null ? "" :
prefix);
+ NamespaceImpl namespace = new NamespaceImpl(ns, prefix);
return new ElementImpl(this, localName, namespace, this.factory);
}
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamespaceImpl.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamespaceImpl.java?view=diff&rev=523314&r1=523313&r2=523314
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamespaceImpl.java
(original)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamespaceImpl.java
Wed Mar 28 06:25:17 2007
@@ -21,15 +21,20 @@
private String nsUri;
- private String nsPrefix;
+ private String nsPrefix = "";
public NamespaceImpl(String uri) {
+ if (uri == null) {
+ throw new IllegalArgumentException("Namespace URI may not be
null");
+ }
this.nsUri = uri;
}
public NamespaceImpl(String uri, String prefix) {
this(uri);
- this.nsPrefix = prefix;
+ if (prefix != null) {
+ this.nsPrefix = prefix;
+ }
}
/*
@@ -39,14 +44,21 @@
* java.lang.String)
*/
public boolean equals(String uri, String prefix) {
- return (this.nsUri == uri && this.nsPrefix == prefix);
+ return (nsUri.equals(uri) && nsPrefix.equals(prefix));
+ }
+
+ public boolean equals(Object obj) {
+ if (!(obj instanceof OMNamespace)) return false;
+ OMNamespace other = (OMNamespace)obj;
+ return (nsUri.equals(other.getNamespaceURI()) &&
+ nsPrefix.equals(other.getPrefix()));
}
/*
- * (non-Javadoc)
- *
- * @see org.apache.axiom.om.OMNamespace#getPrefix()
- */
+ * (non-Javadoc)
+ *
+ * @see org.apache.axiom.om.OMNamespace#getPrefix()
+ */
public String getPrefix() {
return this.nsPrefix;
}
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-dom/test/org/apache/axiom/om/impl/dom/NamespaceTest.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/test/org/apache/axiom/om/impl/dom/NamespaceTest.java?view=auto&rev=523314
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-dom/test/org/apache/axiom/om/impl/dom/NamespaceTest.java
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-dom/test/org/apache/axiom/om/impl/dom/NamespaceTest.java
Wed Mar 28 06:25:17 2007
@@ -0,0 +1,43 @@
+package org.apache.axiom.om.impl.dom;
+
+import junit.framework.TestCase;
+/*
+ * Copyright 2007 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+public class NamespaceTest extends TestCase {
+ public void testEquals() throws Exception {
+ boolean goodResult = false;
+ NamespaceImpl ns1;
+ NamespaceImpl ns2;
+
+ try {
+ new NamespaceImpl(null);
+ } catch (IllegalArgumentException e) {
+ // Caught null, good.
+ goodResult = true;
+ }
+ if (!goodResult)
+ fail("Null namespace allowed!");
+
+ String URI1 = "http://testuri1";
+ String URI2 = "http://";
+ ns1 = new NamespaceImpl(URI1);
+ ns2 = new NamespaceImpl("http://testuri1");
+ URI2 = URI2 + "testuri1"; // Make sure the strings don't intern to
the same place
+ assertTrue(ns1.equals(URI2, ""));
+ assertTrue(ns1.equals(ns2));
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]