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 2021/11/29 11:50:29 UTC
[ws-axiom] branch master updated: Implement OMMetaFactory interface directly on the AxiomNodeFactory instead of using a separate singleton.
This is an automated email from the ASF dual-hosted git repository.
veithen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ws-axiom.git
The following commit(s) were added to refs/heads/master by this push:
new 1b7d8e8 Implement OMMetaFactory interface directly on the AxiomNodeFactory instead of using a separate singleton.
1b7d8e8 is described below
commit 1b7d8e88ea5d348d1704a1b8c264f265a6025598
Author: Andreas Veithen <an...@gmail.com>
AuthorDate: Mon Nov 29 11:50:19 2021 +0000
Implement OMMetaFactory interface directly on the AxiomNodeFactory
instead of using a separate singleton.
---
implementations/axiom-dom/pom.xml | 17 ++++---
.../dom/factory/DOOMDocumentBuilderFactory.java | 4 +-
.../axiom/om/impl/dom/factory/Factories.java | 2 +-
.../om/impl/dom/factory/OMDOMMetaFactory.java | 58 ----------------------
.../impl/dom/factory/OMDOMMetaFactoryLoader.java | 11 ++--
.../om/impl/dom/intf/factory/DOOMNodeFactory.java | 16 +++---
...OOMNodeMixin.java => DOOMNodeFactoryMixin.java} | 20 +++-----
.../axiom/om/impl/dom/mixin/DOOMNodeMixin.java | 6 ---
.../axiom/om/impl/dom/mixin/package-info.java | 1 +
.../org/apache/axiom/om/impl/dom/DOMTests.java | 4 +-
.../axiom/om/impl/dom/OMDOMImplementationTest.java | 4 +-
.../axiom/om/impl/dom/OMImplementationTest.java | 4 +-
.../axiom/om/impl/dom/factory/DOMFeatureTest.java | 3 +-
.../soap/impl/dom/SOAPDOMImplementationTest.java | 8 +--
.../soap/impl/dom/SOAPImplementationTest.java | 8 +--
implementations/axiom-impl/pom.xml | 3 +-
.../impl/llom/factory/OMLinkedListMetaFactory.java | 44 ----------------
.../factory/OMLinkedListMetaFactoryLoader.java | 7 ++-
.../impl/llom/mixin/AxiomInformationItemMixin.java | 7 ---
.../axiom/om/impl/llom/OMImplementationTest.java | 4 +-
.../soap/impl/llom/SOAPImplementationTest.java | 4 +-
.../om/impl/common/factory/OMFactoryImpl.java | 6 +--
.../impl/common/factory/meta/BuilderFactory.java | 12 ++---
.../om/impl/common/factory/meta/BuilderSpec.java | 16 +++---
.../axiom/om/impl/intf/AxiomInformationItem.java | 1 +
.../om/impl/intf/factory/AxiomNodeFactory.java | 3 +-
.../AxiomNodeFactoryMixin.java} | 47 ++++++++----------
.../apache/axiom/om/impl/mixin/package-info.java | 1 +
.../axiom/soap/impl/factory/SOAP11Factory.java | 5 +-
.../axiom/soap/impl/factory/SOAP12Factory.java | 5 +-
.../axiom/soap/impl/factory/SOAPFactoryImpl.java | 5 +-
31 files changed, 112 insertions(+), 224 deletions(-)
diff --git a/implementations/axiom-dom/pom.xml b/implementations/axiom-dom/pom.xml
index 529836c..8502aea 100644
--- a/implementations/axiom-dom/pom.xml
+++ b/implementations/axiom-dom/pom.xml
@@ -131,7 +131,7 @@
<interface>org.apache.axiom.om.impl.dom.intf.DOOMProcessingInstruction</interface>
<interface>org.apache.axiom.om.impl.dom.intf.DOOMSourcedElement</interface>
<interface>org.apache.axiom.om.impl.dom.intf.DOOMText</interface>
- <interface>org.apache.axiom.om.impl.intf.factory.AxiomNodeFactory</interface>
+ <interface>org.apache.axiom.om.impl.dom.intf.factory.DOOMNodeFactory</interface>
<interface>org.apache.axiom.soap.impl.dom.intf.DOOMSOAPMessage</interface>
<interface>org.apache.axiom.soap.impl.dom.intf.soap11.DOOMSOAP11Body</interface>
<interface>org.apache.axiom.soap.impl.dom.intf.soap11.DOOMSOAP11Envelope</interface>
@@ -190,6 +190,10 @@
<outputPackage>org.apache.axiom.om.impl.dom</outputPackage>
</packageMapping>
<packageMapping>
+ <interfacePackage>org.apache.axiom.om.impl.dom.intf.factory</interfacePackage>
+ <outputPackage>org.apache.axiom.om.impl.dom.factory</outputPackage>
+ </packageMapping>
+ <packageMapping>
<interfacePackage>org.apache.axiom.soap.impl.dom.intf</interfacePackage>
<outputPackage>org.apache.axiom.soap.impl.dom</outputPackage>
</packageMapping>
@@ -248,12 +252,11 @@
<ignore>
<!-- TODO: inject the reference to the singleton into mixins directly -->
org.apache.axiom.om.impl.dom.CoreNodeImpl -> org.apache.axiom.om.impl.dom.factory.DOOMNodeFactory,
- org.apache.axiom.om.impl.dom.CoreNodeImpl -> org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactory,
- org.apache.axiom.om.impl.dom.DOOMNSAwareElementImpl -> org.apache.axiom.om.impl.dom.factory.AxiomNodeFactoryImpl,
- org.apache.axiom.om.impl.dom.CoreChildNodeImpl -> org.apache.axiom.om.impl.dom.factory.AxiomNodeFactoryImpl,
- org.apache.axiom.om.impl.dom.AxiomCoreParentNodeImpl -> org.apache.axiom.om.impl.dom.factory.AxiomNodeFactoryImpl,
- org.apache.axiom.om.impl.dom.DOOMNSAwareAttributeImpl -> org.apache.axiom.om.impl.dom.factory.AxiomNodeFactoryImpl,
- org.apache.axiom.om.impl.dom.DOOMNamespaceDeclarationImpl -> org.apache.axiom.om.impl.dom.factory.AxiomNodeFactoryImpl
+ org.apache.axiom.om.impl.dom.DOOMNSAwareElementImpl -> org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl,
+ org.apache.axiom.om.impl.dom.CoreChildNodeImpl -> org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl,
+ org.apache.axiom.om.impl.dom.AxiomCoreParentNodeImpl -> org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl,
+ org.apache.axiom.om.impl.dom.DOOMNSAwareAttributeImpl -> org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl,
+ org.apache.axiom.om.impl.dom.DOOMNamespaceDeclarationImpl -> org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl
</ignore>
</configuration>
</execution>
diff --git a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/DOOMDocumentBuilderFactory.java b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/DOOMDocumentBuilderFactory.java
index 0fb0c63..e373846 100644
--- a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/DOOMDocumentBuilderFactory.java
+++ b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/DOOMDocumentBuilderFactory.java
@@ -29,11 +29,11 @@ import org.apache.axiom.om.OMFactory;
/**
* Document builder factory that conforms to JAXP.
*/
-final class DOOMDocumentBuilderFactory extends DocumentBuilderFactory {
+public final class DOOMDocumentBuilderFactory extends DocumentBuilderFactory {
private final OMFactory factory;
private Schema schema;
- DOOMDocumentBuilderFactory(OMFactory factory) {
+ public DOOMDocumentBuilderFactory(OMFactory factory) {
this.factory = factory;
}
diff --git a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/Factories.java b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/Factories.java
index 55523b1..f3f97ec 100644
--- a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/Factories.java
+++ b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/Factories.java
@@ -20,7 +20,7 @@ package org.apache.axiom.om.impl.dom.factory;
import org.apache.axiom.dom.DOMNodeFactory;
-final class Factories {
+public final class Factories {
static final DOMNodeFactory DOM_NODE_FACTORY;
static {
diff --git a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactory.java b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactory.java
deleted file mode 100644
index 4d9b1a2..0000000
--- a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactory.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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 org.apache.axiom.om.impl.dom.factory;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.apache.axiom.om.dom.DOMMetaFactory;
-import org.apache.axiom.om.impl.common.factory.meta.AbstractOMMetaFactory;
-import org.apache.axiom.om.impl.intf.factory.AxiomNodeFactory;
-import org.w3c.dom.DOMImplementation;
-
-/**
- * Meta factory for the DOOM implementation.
- */
-public class OMDOMMetaFactory extends AbstractOMMetaFactory implements DOMMetaFactory {
- private static final AxiomNodeFactory NODE_FACTORY;
-
- static {
- try {
- NODE_FACTORY = (AxiomNodeFactory)OMDOMMetaFactory.class.getClassLoader().loadClass("org.apache.axiom.om.impl.dom.factory.AxiomNodeFactoryImpl").getField("INSTANCE").get(null);
- } catch (ReflectiveOperationException ex) {
- throw new Error(ex);
- }
- }
-
- public static final OMDOMMetaFactory INSTANCE = new OMDOMMetaFactory();
-
- private OMDOMMetaFactory() {
- super(NODE_FACTORY);
- }
-
- @Override
- public DocumentBuilderFactory newDocumentBuilderFactory() {
- return new DOOMDocumentBuilderFactory(getOMFactory());
- }
-
- @Override
- public DOMImplementation getDOMImplementation() {
- return Factories.DOM_NODE_FACTORY;
- }
-}
diff --git a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactoryLoader.java b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactoryLoader.java
index 9e05d76..2957df3 100644
--- a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactoryLoader.java
+++ b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactoryLoader.java
@@ -21,11 +21,16 @@ package org.apache.axiom.om.impl.dom.factory;
import java.util.Map;
import org.apache.axiom.locator.loader.OMMetaFactoryLoader;
-import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.om.dom.DOMMetaFactory;
+import org.apache.axiom.om.impl.dom.intf.factory.DOOMNodeFactory;
public class OMDOMMetaFactoryLoader implements OMMetaFactoryLoader {
@Override
- public OMMetaFactory load(Map<String,Object> properties) {
- return OMDOMMetaFactory.INSTANCE;
+ public DOMMetaFactory load(Map<String,Object> properties) {
+ try {
+ return (DOOMNodeFactory)OMDOMMetaFactoryLoader.class.getClassLoader().loadClass("org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl").getField("INSTANCE").get(null);
+ } catch (ReflectiveOperationException ex) {
+ throw new Error(ex);
+ }
}
}
diff --git a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/AxiomInformationItem.java b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/intf/factory/DOOMNodeFactory.java
similarity index 73%
copy from mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/AxiomInformationItem.java
copy to implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/intf/factory/DOOMNodeFactory.java
index e992eb4..a66648a 100644
--- a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/AxiomInformationItem.java
+++ b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/intf/factory/DOOMNodeFactory.java
@@ -16,17 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.axiom.om.impl.intf;
+package org.apache.axiom.om.impl.dom.intf.factory;
-import org.apache.axiom.core.CoreNode;
-import org.apache.axiom.om.OMInformationItem;
-import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.om.dom.DOMMetaFactory;
import org.apache.axiom.om.impl.intf.factory.AxiomNodeFactory;
import org.apache.axiom.weaver.annotation.Inject;
+import org.apache.axiom.weaver.annotation.Singleton;
+import org.w3c.dom.DOMImplementation;
-public interface AxiomInformationItem extends OMInformationItem, CoreNode {
+@Singleton
+public interface DOOMNodeFactory extends AxiomNodeFactory, DOMMetaFactory {
+ @Override
@Inject
- AxiomNodeFactory getNodeFactory();
-
- OMMetaFactory getMetaFactory();
+ DOMImplementation getDOMImplementation();
}
diff --git a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/mixin/DOOMNodeMixin.java b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/mixin/DOOMNodeFactoryMixin.java
similarity index 64%
copy from implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/mixin/DOOMNodeMixin.java
copy to implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/mixin/DOOMNodeFactoryMixin.java
index d35d171..1902a70 100644
--- a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/mixin/DOOMNodeMixin.java
+++ b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/mixin/DOOMNodeFactoryMixin.java
@@ -16,23 +16,19 @@
* specific language governing permissions and limitations
* under the License.
*/
+
package org.apache.axiom.om.impl.dom.mixin;
-import org.apache.axiom.core.NodeFactory;
-import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.om.impl.dom.factory.DOOMNodeFactory;
-import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactory;
-import org.apache.axiom.om.impl.dom.intf.DOOMNode;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.axiom.om.impl.dom.factory.DOOMDocumentBuilderFactory;
+import org.apache.axiom.om.impl.dom.intf.factory.DOOMNodeFactory;
import org.apache.axiom.weaver.annotation.Mixin;
@Mixin
-public abstract class DOOMNodeMixin implements DOOMNode {
+public abstract class DOOMNodeFactoryMixin implements DOOMNodeFactory {
@Override
- public final NodeFactory coreGetNodeFactory() {
- return DOOMNodeFactory.INSTANCE;
- }
-
- public final OMMetaFactory getMetaFactory() {
- return OMDOMMetaFactory.INSTANCE;
+ public DocumentBuilderFactory newDocumentBuilderFactory() {
+ return new DOOMDocumentBuilderFactory(getOMFactory());
}
}
diff --git a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/mixin/DOOMNodeMixin.java b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/mixin/DOOMNodeMixin.java
index d35d171..d47e680 100644
--- a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/mixin/DOOMNodeMixin.java
+++ b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/mixin/DOOMNodeMixin.java
@@ -19,9 +19,7 @@
package org.apache.axiom.om.impl.dom.mixin;
import org.apache.axiom.core.NodeFactory;
-import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.impl.dom.factory.DOOMNodeFactory;
-import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactory;
import org.apache.axiom.om.impl.dom.intf.DOOMNode;
import org.apache.axiom.weaver.annotation.Mixin;
@@ -31,8 +29,4 @@ public abstract class DOOMNodeMixin implements DOOMNode {
public final NodeFactory coreGetNodeFactory() {
return DOOMNodeFactory.INSTANCE;
}
-
- public final OMMetaFactory getMetaFactory() {
- return OMDOMMetaFactory.INSTANCE;
- }
}
diff --git a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/mixin/package-info.java b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/mixin/package-info.java
index 86319a5..a4dd937 100644
--- a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/mixin/package-info.java
+++ b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/mixin/package-info.java
@@ -17,6 +17,7 @@
* under the License.
*/
@org.apache.axiom.weaver.annotation.WeavablePackage(mixins={
+ DOOMNodeFactoryMixin.class,
DOOMNodeMixin.class,
})
package org.apache.axiom.om.impl.dom.mixin;
diff --git a/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/DOMTests.java b/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/DOMTests.java
index 5c5b6e4..a2c89a5 100644
--- a/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/DOMTests.java
+++ b/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/DOMTests.java
@@ -20,7 +20,7 @@ package org.apache.axiom.om.impl.dom;
import javax.xml.parsers.DocumentBuilderFactory;
-import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactory;
+import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactoryLoader;
import org.apache.axiom.ts.dom.DocumentBuilderFactoryFactory;
import org.apache.axiom.ts.dom.w3c.DOMFeature;
@@ -30,7 +30,7 @@ public final class DOMTests {
public static final DocumentBuilderFactoryFactory FACTORY = new DocumentBuilderFactoryFactory() {
@Override
public DocumentBuilderFactory newInstance() {
- return OMDOMMetaFactory.INSTANCE.newDocumentBuilderFactory();
+ return new OMDOMMetaFactoryLoader().load(null).newDocumentBuilderFactory();
}
};
diff --git a/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMDOMImplementationTest.java b/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMDOMImplementationTest.java
index 1898235..d13677e 100644
--- a/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMDOMImplementationTest.java
+++ b/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMDOMImplementationTest.java
@@ -21,12 +21,12 @@ package org.apache.axiom.om.impl.dom;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactory;
+import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactoryLoader;
import org.apache.axiom.ts.omdom.OMDOMTestSuiteBuilder;
public class OMDOMImplementationTest extends TestCase {
public static TestSuite suite() {
- OMDOMTestSuiteBuilder builder = new OMDOMTestSuiteBuilder(OMDOMMetaFactory.INSTANCE);
+ OMDOMTestSuiteBuilder builder = new OMDOMTestSuiteBuilder(new OMDOMMetaFactoryLoader().load(null));
return builder.build();
}
}
diff --git a/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java b/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java
index 555a1a0..0c94afc 100644
--- a/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java
+++ b/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java
@@ -21,7 +21,7 @@ package org.apache.axiom.om.impl.dom;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactory;
+import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactoryLoader;
import org.apache.axiom.ts.om.OMTestSuiteBuilder;
import org.apache.axiom.ts.om.document.TestDigest;
import org.apache.axiom.ts.om.element.TestGetChildrenWithName4;
@@ -29,7 +29,7 @@ import org.apache.axiom.ts.om.sourcedelement.TestGetSAXSourceWithPushOMDataSourc
public class OMImplementationTest extends TestCase {
public static TestSuite suite() {
- OMTestSuiteBuilder builder = new OMTestSuiteBuilder(OMDOMMetaFactory.INSTANCE);
+ OMTestSuiteBuilder builder = new OMTestSuiteBuilder(new OMDOMMetaFactoryLoader().load(null));
// TODO: investigate why this is not working with DOOM
builder.exclude(TestGetChildrenWithName4.class);
diff --git a/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/factory/DOMFeatureTest.java b/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/factory/DOMFeatureTest.java
index c524e4c..1133146 100644
--- a/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/factory/DOMFeatureTest.java
+++ b/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/factory/DOMFeatureTest.java
@@ -20,12 +20,13 @@ package org.apache.axiom.om.impl.dom.factory;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.om.dom.DOMMetaFactory;
import junit.framework.TestCase;
public class DOMFeatureTest extends TestCase {
public void test() {
OMMetaFactory metaFactory = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM);
- assertTrue(metaFactory instanceof OMDOMMetaFactory);
+ assertTrue(metaFactory instanceof DOMMetaFactory);
}
}
diff --git a/implementations/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPDOMImplementationTest.java b/implementations/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPDOMImplementationTest.java
index d862df0..341f51c 100644
--- a/implementations/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPDOMImplementationTest.java
+++ b/implementations/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPDOMImplementationTest.java
@@ -18,15 +18,15 @@
*/
package org.apache.axiom.soap.impl.dom;
+import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactoryLoader;
+import org.apache.axiom.ts.soapdom.SOAPDOMTestSuiteBuilder;
+
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactory;
-import org.apache.axiom.ts.soapdom.SOAPDOMTestSuiteBuilder;
-
public class SOAPDOMImplementationTest extends TestCase {
public static TestSuite suite() {
- SOAPDOMTestSuiteBuilder builder = new SOAPDOMTestSuiteBuilder(OMDOMMetaFactory.INSTANCE);
+ SOAPDOMTestSuiteBuilder builder = new SOAPDOMTestSuiteBuilder(new OMDOMMetaFactoryLoader().load(null));
return builder.build();
}
}
diff --git a/implementations/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPImplementationTest.java b/implementations/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPImplementationTest.java
index 14ec1d9..fb6e04b 100644
--- a/implementations/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPImplementationTest.java
+++ b/implementations/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPImplementationTest.java
@@ -18,15 +18,15 @@
*/
package org.apache.axiom.soap.impl.dom;
+import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactoryLoader;
+import org.apache.axiom.ts.soap.SOAPTestSuiteBuilder;
+
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactory;
-import org.apache.axiom.ts.soap.SOAPTestSuiteBuilder;
-
public class SOAPImplementationTest extends TestCase {
public static TestSuite suite() {
- SOAPTestSuiteBuilder builder = new SOAPTestSuiteBuilder(OMDOMMetaFactory.INSTANCE);
+ SOAPTestSuiteBuilder builder = new SOAPTestSuiteBuilder(new OMDOMMetaFactoryLoader().load(null));
return builder.build();
}
diff --git a/implementations/axiom-impl/pom.xml b/implementations/axiom-impl/pom.xml
index a7252c1..044a492 100644
--- a/implementations/axiom-impl/pom.xml
+++ b/implementations/axiom-impl/pom.xml
@@ -210,8 +210,7 @@
<ignore>
<!-- TODO: inject the reference to the singleton into mixins directly -->
org.apache.axiom.om.impl.llom.CoreNodeImpl -> org.apache.axiom.om.impl.llom.factory.AxiomNodeFactoryImpl,
- org.apache.axiom.om.impl.llom.CoreNodeImpl -> org.apache.axiom.om.impl.llom.factory.LLOMNodeFactory,
- org.apache.axiom.om.impl.llom.CoreNodeImpl -> org.apache.axiom.om.impl.llom.factory.OMLinkedListMetaFactory
+ org.apache.axiom.om.impl.llom.CoreNodeImpl -> org.apache.axiom.om.impl.llom.factory.LLOMNodeFactory
</ignore>
</configuration>
</execution>
diff --git a/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListMetaFactory.java b/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListMetaFactory.java
deleted file mode 100644
index a81e88a..0000000
--- a/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListMetaFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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 org.apache.axiom.om.impl.llom.factory;
-
-import org.apache.axiom.om.impl.common.factory.meta.AbstractOMMetaFactory;
-import org.apache.axiom.om.impl.intf.factory.AxiomNodeFactory;
-
-/**
- * Meta factory for the linked list OM implementation.
- */
-public class OMLinkedListMetaFactory extends AbstractOMMetaFactory {
- private static final AxiomNodeFactory NODE_FACTORY;
-
- static {
- try {
- NODE_FACTORY = (AxiomNodeFactory)OMLinkedListMetaFactory.class.getClassLoader().loadClass("org.apache.axiom.om.impl.llom.factory.AxiomNodeFactoryImpl").getField("INSTANCE").get(null);
- } catch (ReflectiveOperationException ex) {
- throw new Error(ex);
- }
- }
-
- public static final OMLinkedListMetaFactory INSTANCE = new OMLinkedListMetaFactory();
-
- private OMLinkedListMetaFactory() {
- super(NODE_FACTORY);
- }
-}
diff --git a/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListMetaFactoryLoader.java b/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListMetaFactoryLoader.java
index d1ebd46..e470c7a 100644
--- a/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListMetaFactoryLoader.java
+++ b/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListMetaFactoryLoader.java
@@ -22,10 +22,15 @@ import java.util.Map;
import org.apache.axiom.locator.loader.OMMetaFactoryLoader;
import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.om.impl.intf.factory.AxiomNodeFactory;
public class OMLinkedListMetaFactoryLoader implements OMMetaFactoryLoader {
@Override
public OMMetaFactory load(Map<String,Object> properties) {
- return OMLinkedListMetaFactory.INSTANCE;
+ try {
+ return (AxiomNodeFactory)OMLinkedListMetaFactoryLoader.class.getClassLoader().loadClass("org.apache.axiom.om.impl.llom.factory.AxiomNodeFactoryImpl").getField("INSTANCE").get(null);
+ } catch (ReflectiveOperationException ex) {
+ throw new Error(ex);
+ }
}
}
diff --git a/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/mixin/AxiomInformationItemMixin.java b/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/mixin/AxiomInformationItemMixin.java
index 2d147f5..c712ea3 100644
--- a/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/mixin/AxiomInformationItemMixin.java
+++ b/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/mixin/AxiomInformationItemMixin.java
@@ -19,10 +19,8 @@
package org.apache.axiom.om.impl.llom.mixin;
import org.apache.axiom.core.NodeFactory;
-import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.impl.intf.AxiomInformationItem;
import org.apache.axiom.om.impl.llom.factory.LLOMNodeFactory;
-import org.apache.axiom.om.impl.llom.factory.OMLinkedListMetaFactory;
import org.apache.axiom.weaver.annotation.Mixin;
@Mixin
@@ -31,9 +29,4 @@ public abstract class AxiomInformationItemMixin implements AxiomInformationItem
public final NodeFactory coreGetNodeFactory() {
return LLOMNodeFactory.INSTANCE;
}
-
- @Override
- public final OMMetaFactory getMetaFactory() {
- return OMLinkedListMetaFactory.INSTANCE;
- }
}
diff --git a/implementations/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java b/implementations/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java
index e51a1c7..b2445bd 100644
--- a/implementations/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java
+++ b/implementations/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java
@@ -21,14 +21,14 @@ package org.apache.axiom.om.impl.llom;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.apache.axiom.om.impl.llom.factory.OMLinkedListMetaFactory;
+import org.apache.axiom.om.impl.llom.factory.OMLinkedListMetaFactoryLoader;
import org.apache.axiom.ts.om.OMTestSuiteBuilder;
import org.apache.axiom.ts.om.document.TestDigest;
import org.apache.axiom.ts.om.sourcedelement.TestGetSAXSourceWithPushOMDataSource;
public class OMImplementationTest extends TestCase {
public static TestSuite suite() {
- OMTestSuiteBuilder builder = new OMTestSuiteBuilder(OMLinkedListMetaFactory.INSTANCE);
+ OMTestSuiteBuilder builder = new OMTestSuiteBuilder(new OMLinkedListMetaFactoryLoader().load(null));
// TODO: if there is a comment node surrounded by text, then these text nodes need to be merged
builder.exclude(TestDigest.class, "(|(file=digest3.xml)(file=digest4.xml))");
diff --git a/implementations/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPImplementationTest.java b/implementations/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPImplementationTest.java
index 9f88d6a..53ff9e3 100644
--- a/implementations/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPImplementationTest.java
+++ b/implementations/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPImplementationTest.java
@@ -21,12 +21,12 @@ package org.apache.axiom.soap.impl.llom;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.apache.axiom.om.impl.llom.factory.OMLinkedListMetaFactory;
+import org.apache.axiom.om.impl.llom.factory.OMLinkedListMetaFactoryLoader;
import org.apache.axiom.ts.soap.SOAPTestSuiteBuilder;
public class SOAPImplementationTest extends TestCase {
public static TestSuite suite() {
- SOAPTestSuiteBuilder builder = new SOAPTestSuiteBuilder(OMLinkedListMetaFactory.INSTANCE);
+ SOAPTestSuiteBuilder builder = new SOAPTestSuiteBuilder(new OMLinkedListMetaFactoryLoader().load(null));
return builder.build();
}
diff --git a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java
index 570e948..f00cb8a 100644
--- a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java
+++ b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java
@@ -66,17 +66,15 @@ import org.apache.axiom.om.impl.intf.factory.AxiomElementType;
import org.apache.axiom.om.impl.intf.factory.AxiomNodeFactory;
public class OMFactoryImpl implements OMFactory {
- private final OMMetaFactory metaFactory;
protected final AxiomNodeFactory nodeFactory;
- public OMFactoryImpl(OMMetaFactory metaFactory, AxiomNodeFactory nodeFactory) {
- this.metaFactory = metaFactory;
+ public OMFactoryImpl(AxiomNodeFactory nodeFactory) {
this.nodeFactory = nodeFactory;
}
@Override
public final OMMetaFactory getMetaFactory() {
- return metaFactory;
+ return nodeFactory;
}
@Override
diff --git a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/BuilderFactory.java b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/BuilderFactory.java
index e482a42..e97a906 100644
--- a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/BuilderFactory.java
+++ b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/BuilderFactory.java
@@ -35,18 +35,18 @@ import org.apache.axiom.soap.impl.common.builder.SOAPModelBuilderImpl;
import org.apache.axiom.soap.impl.intf.AxiomSOAPEnvelope;
import org.apache.axiom.soap.impl.intf.AxiomSOAPMessage;
-abstract class BuilderFactory<T extends OMXMLParserWrapper> {
- final static BuilderFactory<OMXMLParserWrapper> OM = new BuilderFactory<OMXMLParserWrapper>() {
+public abstract class BuilderFactory<T extends OMXMLParserWrapper> {
+ public final static BuilderFactory<OMXMLParserWrapper> OM = new BuilderFactory<OMXMLParserWrapper>() {
@Override
- OMXMLParserWrapper createBuilder(AxiomNodeFactory nodeFactory, BuilderSpec spec) {
+ public OMXMLParserWrapper createBuilder(AxiomNodeFactory nodeFactory, BuilderSpec spec) {
return new OMXMLParserWrapperImpl(new BuilderImpl(spec.getInput(), nodeFactory.getCoreNodeFactory(),
PlainXMLModel.INSTANCE, null), spec.getDetachable());
}
};
- final static BuilderFactory<SOAPModelBuilder> SOAP = new BuilderFactory<SOAPModelBuilder>() {
+ public final static BuilderFactory<SOAPModelBuilder> SOAP = new BuilderFactory<SOAPModelBuilder>() {
@Override
- SOAPModelBuilder createBuilder(AxiomNodeFactory nodeFactory, BuilderSpec spec) {
+ public SOAPModelBuilder createBuilder(AxiomNodeFactory nodeFactory, BuilderSpec spec) {
BuilderImpl builder = new BuilderImpl(new FilteredXmlInput(spec.getInput(), SOAPFilter.INSTANCE), nodeFactory.getCoreNodeFactory(), new SOAPModel(nodeFactory), null);
// The SOAPFactory instance linked to the SOAPMessage is unknown until we reach the
// SOAPEnvelope. Register a post-processor that does the necessary updates on the
@@ -68,5 +68,5 @@ abstract class BuilderFactory<T extends OMXMLParserWrapper> {
}
};
- abstract T createBuilder(AxiomNodeFactory nodeFactory, BuilderSpec spec);
+ public abstract T createBuilder(AxiomNodeFactory nodeFactory, BuilderSpec spec);
}
diff --git a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/BuilderSpec.java b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/BuilderSpec.java
index 5780d86..3551b70 100644
--- a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/BuilderSpec.java
+++ b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/BuilderSpec.java
@@ -53,7 +53,7 @@ import org.apache.axiom.util.xml.stream.XMLEventUtils;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;
-final class BuilderSpec {
+public final class BuilderSpec {
private final XmlInput input;
private final Detachable detachable;
@@ -125,7 +125,7 @@ final class BuilderSpec {
return new BuilderSpec(new StAXPullInput(reader, AxiomXMLStreamReaderHelperFactory.INSTANCE, true, closeable), detachable);
}
- static BuilderSpec from(XMLStreamReader reader) {
+ public static BuilderSpec from(XMLStreamReader reader) {
int eventType = reader.getEventType();
switch (eventType) {
case XMLStreamReader.START_DOCUMENT:
@@ -140,12 +140,12 @@ final class BuilderSpec {
return new BuilderSpec(new FilteredXmlInput(new StAXPullInput(reader, AxiomXMLStreamReaderHelperFactory.INSTANCE, false, null), NamespaceRepairingFilter.DEFAULT), null);
}
- static BuilderSpec from(StAXParserConfiguration configuration,
+ public static BuilderSpec from(StAXParserConfiguration configuration,
InputSource is) {
return create(configuration, is, true);
}
- static BuilderSpec from(StAXParserConfiguration configuration, Source source) {
+ public static BuilderSpec from(StAXParserConfiguration configuration, Source source) {
if (source instanceof SAXSource) {
return from((SAXSource)source, true);
} else if (source instanceof DOMSource) {
@@ -173,7 +173,7 @@ final class BuilderSpec {
}
}
- static BuilderSpec from(Node node, boolean expandEntityReferences) {
+ public static BuilderSpec from(Node node, boolean expandEntityReferences) {
return new BuilderSpec(
new FilteredXmlInput(
new FilteredXmlInput(
@@ -183,11 +183,11 @@ final class BuilderSpec {
null);
}
- static BuilderSpec from(SAXSource source, boolean expandEntityReferences) {
+ public static BuilderSpec from(SAXSource source, boolean expandEntityReferences) {
return new BuilderSpec(new FilteredXmlInput(new SAXInput(source, expandEntityReferences), NamespaceRepairingFilter.DEFAULT), null);
}
- static BuilderSpec from(StAXParserConfiguration configuration, final MultipartBody message) {
+ public static BuilderSpec from(StAXParserConfiguration configuration, final MultipartBody message) {
Part rootPart = message.getRootPart();
InputSource is = new InputSource(rootPart.getInputStream(false));
is.setEncoding(rootPart.getContentType().getParameter("charset"));
@@ -210,7 +210,7 @@ final class BuilderSpec {
});
}
- static BuilderSpec from(StAXParserConfiguration configuration, Source source, OMAttachmentAccessor attachmentAccessor) {
+ public static BuilderSpec from(StAXParserConfiguration configuration, Source source, OMAttachmentAccessor attachmentAccessor) {
BuilderSpec spec = from(configuration, source);
return new BuilderSpec(
new FilteredXmlInput(
diff --git a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/AxiomInformationItem.java b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/AxiomInformationItem.java
index e992eb4..8250da4 100644
--- a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/AxiomInformationItem.java
+++ b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/AxiomInformationItem.java
@@ -28,5 +28,6 @@ public interface AxiomInformationItem extends OMInformationItem, CoreNode {
@Inject
AxiomNodeFactory getNodeFactory();
+ @Inject
OMMetaFactory getMetaFactory();
}
diff --git a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/factory/AxiomNodeFactory.java b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/factory/AxiomNodeFactory.java
index 50a6614..4b5e11b 100644
--- a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/factory/AxiomNodeFactory.java
+++ b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/factory/AxiomNodeFactory.java
@@ -19,6 +19,7 @@
package org.apache.axiom.om.impl.intf.factory;
import org.apache.axiom.core.NodeFactory2;
+import org.apache.axiom.om.OMMetaFactorySPI;
import org.apache.axiom.om.impl.intf.AxiomAttribute;
import org.apache.axiom.om.impl.intf.AxiomCDATASection;
import org.apache.axiom.om.impl.intf.AxiomCharacterDataNode;
@@ -58,7 +59,7 @@ import org.apache.axiom.weaver.annotation.Inject;
import org.apache.axiom.weaver.annotation.Singleton;
@Singleton
-public interface AxiomNodeFactory {
+public interface AxiomNodeFactory extends OMMetaFactorySPI {
@Inject
NodeFactory2 getCoreNodeFactory();
diff --git a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/AbstractOMMetaFactory.java b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomNodeFactoryMixin.java
similarity index 64%
rename from mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/AbstractOMMetaFactory.java
rename to mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomNodeFactoryMixin.java
index bb0c65d..ca2af94 100644
--- a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/AbstractOMMetaFactory.java
+++ b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomNodeFactoryMixin.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.axiom.om.impl.common.factory.meta;
+package org.apache.axiom.om.impl.mixin;
import static org.apache.axiom.om.impl.common.factory.meta.BuilderFactory.OM;
import static org.apache.axiom.om.impl.common.factory.meta.BuilderFactory.SOAP;
@@ -28,34 +28,29 @@ import javax.xml.transform.sax.SAXSource;
import org.apache.axiom.mime.MultipartBody;
import org.apache.axiom.om.OMAttachmentAccessor;
import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.om.OMMetaFactorySPI;
import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.om.impl.common.factory.OMFactoryImpl;
+import org.apache.axiom.om.impl.common.factory.meta.BuilderSpec;
import org.apache.axiom.om.impl.intf.factory.AxiomNodeFactory;
import org.apache.axiom.om.util.StAXParserConfiguration;
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPModelBuilder;
import org.apache.axiom.soap.impl.factory.SOAP11Factory;
import org.apache.axiom.soap.impl.factory.SOAP12Factory;
+import org.apache.axiom.weaver.annotation.Mixin;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;
-/**
- * Base class for {@link OMMetaFactory} implementations that make use of the standard builders
- * ({@link org.apache.axiom.core.impl.builder.BuilderImpl} and its subclasses).
- */
-public abstract class AbstractOMMetaFactory implements OMMetaFactorySPI {
- private final AxiomNodeFactory nodeFactory;
+@Mixin
+public abstract class AxiomNodeFactoryMixin implements AxiomNodeFactory {
private final OMFactory omFactory;
private final SOAPFactory soap11Factory;
private final SOAPFactory soap12Factory;
- public AbstractOMMetaFactory(AxiomNodeFactory nodeFactory) {
- this.nodeFactory = nodeFactory;
- omFactory = new OMFactoryImpl(this, nodeFactory);
- soap11Factory = new SOAP11Factory(this, nodeFactory);
- soap12Factory = new SOAP12Factory(this, nodeFactory);
+ public AxiomNodeFactoryMixin() {
+ omFactory = new OMFactoryImpl(this);
+ soap11Factory = new SOAP11Factory(this);
+ soap12Factory = new SOAP12Factory(this);
}
@Override
@@ -75,61 +70,61 @@ public abstract class AbstractOMMetaFactory implements OMMetaFactorySPI {
@Override
public final OMXMLParserWrapper createStAXOMBuilder(XMLStreamReader parser) {
- return OM.createBuilder(nodeFactory, BuilderSpec.from(parser));
+ return OM.createBuilder(this, BuilderSpec.from(parser));
}
@Override
public final OMXMLParserWrapper createOMBuilder(StAXParserConfiguration configuration, InputSource is) {
- return OM.createBuilder(nodeFactory, BuilderSpec.from(configuration, is));
+ return OM.createBuilder(this, BuilderSpec.from(configuration, is));
}
@Override
public final OMXMLParserWrapper createOMBuilder(Source source) {
- return OM.createBuilder(nodeFactory, BuilderSpec.from(StAXParserConfiguration.DEFAULT, source));
+ return OM.createBuilder(this, BuilderSpec.from(StAXParserConfiguration.DEFAULT, source));
}
@Override
public final OMXMLParserWrapper createOMBuilder(Node node, boolean expandEntityReferences) {
- return OM.createBuilder(nodeFactory, BuilderSpec.from(node, expandEntityReferences));
+ return OM.createBuilder(this, BuilderSpec.from(node, expandEntityReferences));
}
@Override
public final OMXMLParserWrapper createOMBuilder(SAXSource source, boolean expandEntityReferences) {
- return OM.createBuilder(nodeFactory, BuilderSpec.from(source, expandEntityReferences));
+ return OM.createBuilder(this, BuilderSpec.from(source, expandEntityReferences));
}
@Override
public final OMXMLParserWrapper createOMBuilder(StAXParserConfiguration configuration, MultipartBody message) {
- return OM.createBuilder(nodeFactory, BuilderSpec.from(configuration, message));
+ return OM.createBuilder(this, BuilderSpec.from(configuration, message));
}
@Override
public final OMXMLParserWrapper createOMBuilder(Source rootPart, OMAttachmentAccessor attachmentAccessor) {
- return OM.createBuilder(nodeFactory, BuilderSpec.from(StAXParserConfiguration.DEFAULT, rootPart, attachmentAccessor));
+ return OM.createBuilder(this, BuilderSpec.from(StAXParserConfiguration.DEFAULT, rootPart, attachmentAccessor));
}
@Override
public final SOAPModelBuilder createStAXSOAPModelBuilder(XMLStreamReader parser) {
- return SOAP.createBuilder(nodeFactory, BuilderSpec.from(parser));
+ return SOAP.createBuilder(this, BuilderSpec.from(parser));
}
@Override
public final SOAPModelBuilder createSOAPModelBuilder(InputSource is) {
- return SOAP.createBuilder(nodeFactory, BuilderSpec.from(StAXParserConfiguration.SOAP, is));
+ return SOAP.createBuilder(this, BuilderSpec.from(StAXParserConfiguration.SOAP, is));
}
@Override
public final SOAPModelBuilder createSOAPModelBuilder(Source source) {
- return SOAP.createBuilder(nodeFactory, BuilderSpec.from(StAXParserConfiguration.SOAP, source));
+ return SOAP.createBuilder(this, BuilderSpec.from(StAXParserConfiguration.SOAP, source));
}
@Override
public final SOAPModelBuilder createSOAPModelBuilder(MultipartBody message) {
- return SOAP.createBuilder(nodeFactory, BuilderSpec.from(StAXParserConfiguration.SOAP, message));
+ return SOAP.createBuilder(this, BuilderSpec.from(StAXParserConfiguration.SOAP, message));
}
@Override
public final SOAPModelBuilder createSOAPModelBuilder(Source rootPart, OMAttachmentAccessor attachmentAccessor) {
- return SOAP.createBuilder(nodeFactory, BuilderSpec.from(StAXParserConfiguration.SOAP, rootPart, attachmentAccessor));
+ return SOAP.createBuilder(this, BuilderSpec.from(StAXParserConfiguration.SOAP, rootPart, attachmentAccessor));
}
}
diff --git a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/package-info.java b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/package-info.java
index 8af074f..2b14f7a 100644
--- a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/package-info.java
+++ b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/package-info.java
@@ -33,6 +33,7 @@
AxiomLeafNodeMixin.class,
AxiomNamedInformationItemMixin.class,
AxiomNamespaceDeclarationMixin.class,
+ AxiomNodeFactoryMixin.class,
AxiomProcessingInstructionMixin.class,
AxiomSerializableMixin.class,
AxiomSourcedElementMixin.class,
diff --git a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/factory/SOAP11Factory.java b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/factory/SOAP11Factory.java
index 8e5149e..30baa9b 100644
--- a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/factory/SOAP11Factory.java
+++ b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/factory/SOAP11Factory.java
@@ -18,7 +18,6 @@
*/
package org.apache.axiom.soap.impl.factory;
-import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.impl.intf.factory.AxiomNodeFactory;
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.soap.SOAPFault;
@@ -32,8 +31,8 @@ import org.apache.axiom.soap.impl.intf.SOAPHelper;
import org.apache.axiom.soap.impl.intf.soap11.SOAP11Helper;
public class SOAP11Factory extends SOAPFactoryImpl {
- public SOAP11Factory(OMMetaFactory metaFactory, AxiomNodeFactory nodeFactory) {
- super(metaFactory, nodeFactory);
+ public SOAP11Factory(AxiomNodeFactory nodeFactory) {
+ super(nodeFactory);
}
@Override
diff --git a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/factory/SOAP12Factory.java b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/factory/SOAP12Factory.java
index 07d54a1..2adeab9 100644
--- a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/factory/SOAP12Factory.java
+++ b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/factory/SOAP12Factory.java
@@ -18,7 +18,6 @@
*/
package org.apache.axiom.soap.impl.factory;
-import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.impl.intf.factory.AxiomNodeFactory;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axiom.soap.SOAPEnvelope;
@@ -34,8 +33,8 @@ import org.apache.axiom.soap.impl.intf.SOAPHelper;
import org.apache.axiom.soap.impl.intf.soap12.SOAP12Helper;
public class SOAP12Factory extends SOAPFactoryImpl {
- public SOAP12Factory(OMMetaFactory metaFactory, AxiomNodeFactory nodeFactory) {
- super(metaFactory, nodeFactory);
+ public SOAP12Factory(AxiomNodeFactory nodeFactory) {
+ super(nodeFactory);
}
@Override
diff --git a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/factory/SOAPFactoryImpl.java b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/factory/SOAPFactoryImpl.java
index 0f0e549..e9a8140 100644
--- a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/factory/SOAPFactoryImpl.java
+++ b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/factory/SOAPFactoryImpl.java
@@ -22,7 +22,6 @@ import javax.xml.namespace.QName;
import org.apache.axiom.om.OMDataSource;
import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.impl.common.factory.OMFactoryImpl;
import org.apache.axiom.om.impl.intf.AxiomElement;
@@ -50,8 +49,8 @@ import org.apache.axiom.soap.impl.intf.SOAPHelper;
public abstract class SOAPFactoryImpl extends OMFactoryImpl implements SOAPFactory {
private static final Sequence envelopeSequence = new Sequence(SOAPHeader.class, SOAPBody.class);
- public SOAPFactoryImpl(OMMetaFactory metaFactory, AxiomNodeFactory nodeFactory) {
- super(metaFactory, nodeFactory);
+ public SOAPFactoryImpl(AxiomNodeFactory nodeFactory) {
+ super(nodeFactory);
}
public abstract SOAPHelper getSOAPHelper();