You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2015/05/06 00:34:48 UTC

svn commit: r1677901 [2/2] - in /webservices/axiom/trunk: modules/axiom-api/src/test/java/org/apache/axiom/om/impl/serialize/ modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/ modules/axiom-compat/src/test/java/org/apache/axiom/om/imp...

Modified: webservices/axiom/trunk/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/FactorySelector.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/FactorySelector.java?rev=1677901&r1=1677900&r2=1677901&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/FactorySelector.java (original)
+++ webservices/axiom/trunk/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/FactorySelector.java Tue May  5 22:34:47 2015
@@ -22,7 +22,7 @@ import javax.xml.soap.MessageFactory;
 import javax.xml.soap.SOAPException;
 import javax.xml.soap.SOAPFactory;
 
-import org.apache.axiom.ts.soap.AdapterType;
+import org.apache.axiom.testing.multiton.AdapterType;
 import org.apache.axiom.ts.soap.SOAPSpec;
 
 /**

Modified: webservices/axiom/trunk/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/SOAPSpecAdapterFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/SOAPSpecAdapterFactory.java?rev=1677901&r1=1677900&r2=1677901&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/SOAPSpecAdapterFactory.java (original)
+++ webservices/axiom/trunk/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/SOAPSpecAdapterFactory.java Tue May  5 22:34:47 2015
@@ -22,8 +22,8 @@ import javax.xml.soap.MessageFactory;
 import javax.xml.soap.SOAPConstants;
 import javax.xml.soap.SOAPException;
 
-import org.apache.axiom.ts.soap.AdapterFactory;
-import org.apache.axiom.ts.soap.Adapters;
+import org.apache.axiom.testing.multiton.AdapterFactory;
+import org.apache.axiom.testing.multiton.Adapters;
 import org.apache.axiom.ts.soap.SOAPSpec;
 
 public class SOAPSpecAdapterFactory implements AdapterFactory<SOAPSpec> {

Modified: webservices/axiom/trunk/testing/soap-testsuite/pom.xml
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/soap-testsuite/pom.xml?rev=1677901&r1=1677900&r2=1677901&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/soap-testsuite/pom.xml (original)
+++ webservices/axiom/trunk/testing/soap-testsuite/pom.xml Tue May  5 22:34:47 2015
@@ -35,6 +35,11 @@
 
     <dependencies>
         <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>multiton</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>

Modified: webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/BooleanAttribute.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/BooleanAttribute.java?rev=1677901&r1=1677900&r2=1677901&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/BooleanAttribute.java (original)
+++ webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/BooleanAttribute.java Tue May  5 22:34:47 2015
@@ -18,12 +18,14 @@
  */
 package org.apache.axiom.ts.soap;
 
+import org.apache.axiom.testing.multiton.Multiton;
+
 /**
  * Describes a boolean attribute that can appear on a SOAP header block. This includes the
  * <tt>mustUnderstand</tt> attribute in all SOAP versions as well as the <tt>relay</tt> attribute
  * defined by SOAP 1.2.
  */
-public abstract class BooleanAttribute extends Adaptable {
+public abstract class BooleanAttribute extends Multiton {
     public static final BooleanAttribute MUST_UNDERSTAND = new BooleanAttribute() {
         public String getName() {
             return "mustUnderstand";

Modified: webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPElementType.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPElementType.java?rev=1677901&r1=1677900&r2=1677901&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPElementType.java (original)
+++ webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPElementType.java Tue May  5 22:34:47 2015
@@ -23,7 +23,9 @@ import java.util.List;
 
 import javax.xml.namespace.QName;
 
-public abstract class SOAPElementType extends Adaptable {
+import org.apache.axiom.testing.multiton.Multiton;
+
+public abstract class SOAPElementType extends Multiton {
     public static final SOAPElementType ENVELOPE = new SOAPElementType() {
         public QName getQName(SOAPSpec spec) {
             return spec.getEnvelopeQName();

Modified: webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPSpec.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPSpec.java?rev=1677901&r1=1677900&r2=1677901&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPSpec.java (original)
+++ webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPSpec.java Tue May  5 22:34:47 2015
@@ -29,10 +29,12 @@ import javax.xml.transform.stream.Stream
 import javax.xml.validation.Schema;
 import javax.xml.validation.SchemaFactory;
 
+import org.apache.axiom.testing.multiton.Multiton;
+
 /**
  * Describes the characteristics of a given SOAP version.
  */
-public abstract class SOAPSpec extends Adaptable {
+public abstract class SOAPSpec extends Multiton {
     public static final SOAPSpec SOAP11 = new SOAPSpec("soap11",
             "text/xml",
             "http://schemas.xmlsoap.org/soap/envelope/",
@@ -105,7 +107,7 @@ public abstract class SOAPSpec extends A
     private final String[] schemaResources;
     private Schema schema;
     
-    public SOAPSpec(String name, String contentType, String envelopeNamespaceURI, BooleanLiteral[] booleanLiterals,
+    private SOAPSpec(String name, String contentType, String envelopeNamespaceURI, BooleanLiteral[] booleanLiterals,
             QName faultCodeQName, QName faultValueQName, QName faultSubCodeQName, QName faultReasonQName,
             QName faultTextQName, QName faultNodeQName, QName faultRoleQName, QName faultDetailQName,
             String nextRoleURI, QName senderFaultCode, QName receiverFaultCode,

Modified: webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/TestMessage.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/TestMessage.java?rev=1677901&r1=1677900&r2=1677901&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/TestMessage.java (original)
+++ webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/TestMessage.java Tue May  5 22:34:47 2015
@@ -29,6 +29,8 @@ import javax.xml.transform.TransformerFa
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
+import org.apache.axiom.testing.multiton.Instances;
+import org.apache.axiom.testing.multiton.Multiton;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -37,24 +39,23 @@ import org.xml.sax.InputSource;
 /**
  * A SOAP test message.
  */
-public abstract class TestMessage extends Adaptable {
-    private static final List<TestMessage> instances = new ArrayList<TestMessage>();
-    
-    static {
-        // Force instantiation of TestMessage objects related to TestMessageSets
-        TestMessageSet.getAll();
-    }
-    
+public abstract class TestMessage extends Multiton {
     private final SOAPSpec spec;
     private final String name;
     
     TestMessage(SOAPSpec spec, String name) {
         this.spec = spec;
         this.name = name;
-        instances.add(this);
     }
     
-    public static TestMessage[] getAll() {
+    @Instances
+    private static TestMessage[] instances() {
+        List<TestMessage> instances = new ArrayList<TestMessage>();
+        for (TestMessageSet set : getInstances(TestMessageSet.class)) {
+            for (SOAPSpec spec : getInstances(SOAPSpec.class)) {
+                instances.add(set.getMessage(spec));
+            }
+        }
         return instances.toArray(new TestMessage[instances.size()]);
     }
     

Modified: webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/TestMessageSet.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/TestMessageSet.java?rev=1677901&r1=1677900&r2=1677901&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/TestMessageSet.java (original)
+++ webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/TestMessageSet.java Tue May  5 22:34:47 2015
@@ -18,15 +18,12 @@
  */
 package org.apache.axiom.ts.soap;
 
-import java.util.ArrayList;
-import java.util.List;
+import org.apache.axiom.testing.multiton.Multiton;
 
 /**
  * A set of two equivalent SOAP messages, one for SOAP 1.1 and one for SOAP 1.2.
  */
-public final class TestMessageSet extends Adaptable {
-    private static final List<TestMessageSet> instances = new ArrayList<TestMessageSet>();
-    
+public final class TestMessageSet extends Multiton {
     /**
      * A simple SOAP message without header.
      */
@@ -69,13 +66,8 @@ public final class TestMessageSet extend
     private TestMessageSet(String name) {
         soap12Message = new SimpleTestMessage(SOAPSpec.SOAP12, "test-message/set/" + name + ".xml", "soap12/" + name);
         soap11Message = new ConvertedTestMessage(soap12Message, "soap11/" + name);
-        instances.add(this);
     }
 
-    public static TestMessageSet[] getAll() {
-        return instances.toArray(new TestMessageSet[instances.size()]);
-    }
-    
     /**
      * Get the test message for the given SOAP version.
      * 

Modified: webservices/axiom/trunk/testing/soap-testsuite/src/test/java/org/apache/axiom/ts/soap/ValidationTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/soap-testsuite/src/test/java/org/apache/axiom/ts/soap/ValidationTest.java?rev=1677901&r1=1677900&r2=1677901&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/soap-testsuite/src/test/java/org/apache/axiom/ts/soap/ValidationTest.java (original)
+++ webservices/axiom/trunk/testing/soap-testsuite/src/test/java/org/apache/axiom/ts/soap/ValidationTest.java Tue May  5 22:34:47 2015
@@ -18,6 +18,8 @@
  */
 package org.apache.axiom.ts.soap;
 
+import static org.apache.axiom.testing.multiton.Multiton.getInstances;
+
 import javax.xml.transform.stream.StreamSource;
 
 import junit.framework.TestCase;
@@ -38,7 +40,7 @@ public class ValidationTest extends Test
 
     public static TestSuite suite() {
         TestSuite suite = new TestSuite();
-        for (TestMessage message : TestMessage.getAll()) {
+        for (TestMessage message : getInstances(TestMessage.class)) {
             suite.addTest(new ValidationTest(message));
         }
         return suite;

Modified: webservices/axiom/trunk/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SOAPSpecAdapter.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SOAPSpecAdapter.java?rev=1677901&r1=1677900&r2=1677901&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SOAPSpecAdapter.java (original)
+++ webservices/axiom/trunk/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SOAPSpecAdapter.java Tue May  5 22:34:47 2015
@@ -18,7 +18,7 @@
  */
 package org.apache.axiom.ts.springws;
 
-import org.apache.axiom.ts.soap.AdapterType;
+import org.apache.axiom.testing.multiton.AdapterType;
 
 @AdapterType
 public final class SOAPSpecAdapter {

Modified: webservices/axiom/trunk/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SOAPSpecAdapterFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SOAPSpecAdapterFactory.java?rev=1677901&r1=1677900&r2=1677901&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SOAPSpecAdapterFactory.java (original)
+++ webservices/axiom/trunk/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SOAPSpecAdapterFactory.java Tue May  5 22:34:47 2015
@@ -18,8 +18,8 @@
  */
 package org.apache.axiom.ts.springws;
 
-import org.apache.axiom.ts.soap.AdapterFactory;
-import org.apache.axiom.ts.soap.Adapters;
+import org.apache.axiom.testing.multiton.AdapterFactory;
+import org.apache.axiom.testing.multiton.Adapters;
 import org.apache.axiom.ts.soap.SOAPSpec;
 
 public class SOAPSpecAdapterFactory implements AdapterFactory<SOAPSpec> {

Modified: webservices/axiom/trunk/testing/testutils/pom.xml
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/testutils/pom.xml?rev=1677901&r1=1677900&r2=1677901&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/testutils/pom.xml (original)
+++ webservices/axiom/trunk/testing/testutils/pom.xml Tue May  5 22:34:47 2015
@@ -51,6 +51,11 @@
             <artifactId>${stax.impl.artifact}</artifactId>
         </dependency>
         <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>multiton</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
         </dependency>

Modified: webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/conformance/ConformanceTestFile.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/conformance/ConformanceTestFile.java?rev=1677901&r1=1677900&r2=1677901&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/conformance/ConformanceTestFile.java (original)
+++ webservices/axiom/trunk/testing/testutils/src/main/java/org/apache/axiom/testutils/conformance/ConformanceTestFile.java Tue May  5 22:34:47 2015
@@ -31,13 +31,13 @@ import javax.xml.stream.XMLStreamExcepti
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.transform.stream.StreamSource;
 
+import org.apache.axiom.testing.multiton.Multiton;
+import org.apache.axiom.testing.multiton.Instances;
 import org.codehaus.stax2.DTDInfo;
 
 import com.ctc.wstx.stax.WstxInputFactory;
 
-public final class ConformanceTestFile {
-    private static ConformanceTestFile[] instances;
-    
+public final class ConformanceTestFile extends Multiton {
     private final String resourceName;
     private final String shortName;
     private final boolean hasDTD;
@@ -87,51 +87,41 @@ public final class ConformanceTestFile {
         return ConformanceTestFile.class.getClassLoader().getResource(resourceName);
     }
     
-    public static synchronized ConformanceTestFile[] getConformanceTestFiles() {
-        if (instances == null) {
-            try {
-                BufferedReader in = new BufferedReader(new InputStreamReader(
-                        ConformanceTestFile.class.getResourceAsStream("filelist")));
-                List result = new ArrayList(10);
-                // We make use of Woodstox' DTDInfo interface here, but we want to be able to use system properties
-                // to specify the StAX implementation to be used by the tests. Therefore we need to create
-                // an instance of the Woodstox InputFactory implementation directly.
-                XMLInputFactory inputFactory = new WstxInputFactory();
-                inputFactory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, Boolean.FALSE);
-                String name;
-                while ((name = in.readLine()) != null) {
-                    String resourceName = "org/apache/axiom/testutils/conformance/" + name;
-                    boolean hasDTD = false;
-                    boolean hasExternalSubset = false;
-                    boolean hasInternalSubset = false;
-                    boolean hasEntityReferences = false;
-                    try {
-                        XMLStreamReader reader = inputFactory.createXMLStreamReader(new StreamSource(
-                                ConformanceTestFile.class.getResource(name).toString()));
-                        while (reader.hasNext()) {
-                            switch (reader.next()) {
-                                case XMLStreamReader.DTD:
-                                    hasDTD = true;
-                                    hasInternalSubset = reader.getText().length() > 0;
-                                    hasExternalSubset = ((DTDInfo)reader).getDTDSystemId() != null;
-                                    break;
-                                case XMLStreamReader.ENTITY_REFERENCE:
-                                    hasEntityReferences = true;
-                                    break;
-                            }
-                        }
-                        reader.close();
-                    } catch (XMLStreamException ex) {
-                        throw new Error("Unable to parse " + resourceName);
-                    }
-                    result.add(new ConformanceTestFile(resourceName, name, hasDTD, hasExternalSubset, hasInternalSubset, hasEntityReferences));
+    @Instances
+    private static ConformanceTestFile[] instances() throws IOException, XMLStreamException {
+        BufferedReader in = new BufferedReader(new InputStreamReader(
+                ConformanceTestFile.class.getResourceAsStream("filelist")));
+        List<ConformanceTestFile> result = new ArrayList<ConformanceTestFile>(10);
+        // We make use of Woodstox' DTDInfo interface here, but we want to be able to use system properties
+        // to specify the StAX implementation to be used by the tests. Therefore we need to create
+        // an instance of the Woodstox InputFactory implementation directly.
+        XMLInputFactory inputFactory = new WstxInputFactory();
+        inputFactory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, Boolean.FALSE);
+        String name;
+        while ((name = in.readLine()) != null) {
+            String resourceName = "org/apache/axiom/testutils/conformance/" + name;
+            boolean hasDTD = false;
+            boolean hasExternalSubset = false;
+            boolean hasInternalSubset = false;
+            boolean hasEntityReferences = false;
+            XMLStreamReader reader = inputFactory.createXMLStreamReader(new StreamSource(
+                    ConformanceTestFile.class.getResource(name).toString()));
+            while (reader.hasNext()) {
+                switch (reader.next()) {
+                    case XMLStreamReader.DTD:
+                        hasDTD = true;
+                        hasInternalSubset = reader.getText().length() > 0;
+                        hasExternalSubset = ((DTDInfo)reader).getDTDSystemId() != null;
+                        break;
+                    case XMLStreamReader.ENTITY_REFERENCE:
+                        hasEntityReferences = true;
+                        break;
                 }
-                in.close();
-                return (ConformanceTestFile[])result.toArray(new ConformanceTestFile[result.size()]);
-            } catch (IOException ex) {
-                throw new Error("Unable to load file list: " + ex.getMessage());
             }
+            reader.close();
+            result.add(new ConformanceTestFile(resourceName, name, hasDTD, hasExternalSubset, hasInternalSubset, hasEntityReferences));
         }
-        return (ConformanceTestFile[])instances.clone();
+        in.close();
+        return result.toArray(new ConformanceTestFile[result.size()]);
     }
 }