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 21:04:11 UTC

[ws-axiom] branch master updated: Remove shared-mixins

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 edcf3aa  Remove shared-mixins
edcf3aa is described below

commit edcf3aac045933bfde69550b76ab29f804516cc8
Author: Andreas Veithen <an...@gmail.com>
AuthorDate: Mon Nov 29 21:04:00 2021 +0000

    Remove shared-mixins
    
    Instead allow two mixins to define the same method if their
    implementations are exactly the same.
---
 .../weaver/ImplementationClassDefinition.java      | 30 ++++++++++++-
 .../axiom/weaver/mixin/LineNumberFilter.java       | 17 +++++---
 .../org/apache/axiom/weaver/mixin/MethodBody.java  | 13 ++++++
 implementations/axiom-dom/pom.xml                  |  2 -
 implementations/axiom-impl/pom.xml                 |  2 -
 .../axiom/dom/impl/mixin/DOMDocumentTypeMixin.java | 15 +++++++
 .../dom/impl/mixin/DOMNSAwareNamedNodeMixin.java   | 17 ++++++++
 .../impl/mixin/DOMProcessingInstructionMixin.java  |  5 +++
 .../axiom/om/impl/mixin/AxiomDocTypeMixin.java     | 15 +++++++
 .../impl/mixin/AxiomNamedInformationItemMixin.java | 17 ++++++++
 .../mixin/AxiomProcessingInstructionMixin.java     |  5 +++
 mixins/pom.xml                                     |  1 -
 mixins/shared-mixins/BUILD                         | 32 --------------
 mixins/shared-mixins/pom.xml                       | 50 ----------------------
 .../axiom/shared/DocumentTypeDeclarationMixin.java | 37 ----------------
 .../apache/axiom/shared/NSAwareNamedNodeMixin.java | 39 -----------------
 .../java/org/apache/axiom/shared/package-info.java | 24 -----------
 17 files changed, 126 insertions(+), 195 deletions(-)

diff --git a/axiom-weaver/src/main/java/org/apache/axiom/weaver/ImplementationClassDefinition.java b/axiom-weaver/src/main/java/org/apache/axiom/weaver/ImplementationClassDefinition.java
index c693821..663947b 100644
--- a/axiom-weaver/src/main/java/org/apache/axiom/weaver/ImplementationClassDefinition.java
+++ b/axiom-weaver/src/main/java/org/apache/axiom/weaver/ImplementationClassDefinition.java
@@ -29,12 +29,16 @@ import org.apache.axiom.weaver.mixin.Mixin;
 import org.apache.axiom.weaver.mixin.MixinMethod;
 import org.apache.axiom.weaver.mixin.StaticInitializerMethod;
 import org.apache.axiom.weaver.mixin.TargetContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.objectweb.asm.ClassVisitor;
 import org.objectweb.asm.MethodVisitor;
 import org.objectweb.asm.Opcodes;
 import org.objectweb.asm.Type;
 
 final class ImplementationClassDefinition extends ClassDefinition {
+    private static final Log log = LogFactory.getLog(ImplementationClassDefinition.class);
+
     private final TargetContext targetContext;
     private final int version;
     private final int access;
@@ -75,7 +79,31 @@ final class ImplementationClassDefinition extends ClassDefinition {
                         // Keep the existing method.
                         continue;
                     } else {
-                        throw new WeaverException("Method collision");
+                        String body1 = existingMethod.getBody().toString(targetContext);
+                        String body2 = method.getBody().toString(targetContext);
+                        // Allow two mixins to define identical methods. This is useful for DOOM
+                        // because some methods are defined in the same way by DOM and Axiom.
+                        if (body1.equals(body2)) {
+                            log.info(
+                                    "Ignoring identical mixin method for "
+                                            + signature
+                                            + " in "
+                                            + targetContext.getTargetClassName());
+                            continue;
+                        }
+                        throw new WeaverException(
+                                "Method collision for "
+                                        + signature
+                                        + " in "
+                                        + targetContext.getTargetClassName()
+                                        + "\n--- Method defined by "
+                                        + existingMethod.getMixin().getName()
+                                        + ":\n"
+                                        + body1
+                                        + "\n--- Method defined by "
+                                        + method.getMixin().getName()
+                                        + ":\n"
+                                        + body2);
                     }
                 }
                 methodMap.put(signature, method);
diff --git a/mixins/shared-mixins/src/main/java/org/apache/axiom/shared/ProcessingInstructionMixin.java b/axiom-weaver/src/main/java/org/apache/axiom/weaver/mixin/LineNumberFilter.java
similarity index 68%
rename from mixins/shared-mixins/src/main/java/org/apache/axiom/shared/ProcessingInstructionMixin.java
rename to axiom-weaver/src/main/java/org/apache/axiom/weaver/mixin/LineNumberFilter.java
index cf0f732..820bfde 100644
--- a/mixins/shared-mixins/src/main/java/org/apache/axiom/shared/ProcessingInstructionMixin.java
+++ b/axiom-weaver/src/main/java/org/apache/axiom/weaver/mixin/LineNumberFilter.java
@@ -16,14 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.shared;
+package org.apache.axiom.weaver.mixin;
 
-import org.apache.axiom.core.CoreProcessingInstruction;
-import org.apache.axiom.weaver.annotation.Mixin;
+import org.objectweb.asm.Label;
+import org.objectweb.asm.MethodVisitor;
+import org.objectweb.asm.Opcodes;
 
-@Mixin
-public abstract class ProcessingInstructionMixin implements CoreProcessingInstruction {
-    public final String getTarget() {
-        return coreGetTarget();
+final class LineNumberFilter extends MethodVisitor {
+    LineNumberFilter(MethodVisitor methodVisitor) {
+        super(Opcodes.ASM9, methodVisitor);
     }
+
+    @Override
+    public void visitLineNumber(int line, Label start) {}
 }
diff --git a/axiom-weaver/src/main/java/org/apache/axiom/weaver/mixin/MethodBody.java b/axiom-weaver/src/main/java/org/apache/axiom/weaver/mixin/MethodBody.java
index 5f23c0d..0608aa1 100644
--- a/axiom-weaver/src/main/java/org/apache/axiom/weaver/mixin/MethodBody.java
+++ b/axiom-weaver/src/main/java/org/apache/axiom/weaver/mixin/MethodBody.java
@@ -18,7 +18,12 @@
  */
 package org.apache.axiom.weaver.mixin;
 
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
 import org.objectweb.asm.MethodVisitor;
+import org.objectweb.asm.util.Textifier;
+import org.objectweb.asm.util.TraceMethodVisitor;
 
 public abstract class MethodBody {
     public abstract void apply(TargetContext context, MethodVisitor mv);
@@ -28,4 +33,12 @@ public abstract class MethodBody {
         apply(DummyTargetContext.INSTANCE, new WeighingMethodVisitor(counter));
         return counter.get();
     }
+
+    public final String toString(TargetContext targetContext) {
+        Textifier textifier = new Textifier();
+        apply(targetContext, new LineNumberFilter(new TraceMethodVisitor(textifier)));
+        StringWriter sw = new StringWriter();
+        textifier.print(new PrintWriter(sw));
+        return sw.toString();
+    }
 }
diff --git a/implementations/axiom-dom/pom.xml b/implementations/axiom-dom/pom.xml
index 8502aea..7aca284 100644
--- a/implementations/axiom-dom/pom.xml
+++ b/implementations/axiom-dom/pom.xml
@@ -108,7 +108,6 @@
                         <configuration>
                             <weavablePackages>
                                 <weavablePackage>org.apache.axiom.core.impl.mixin</weavablePackage>
-                                <weavablePackage>org.apache.axiom.shared</weavablePackage>
                                 <weavablePackage>org.apache.axiom.om.impl.mixin</weavablePackage>
                                 <weavablePackage>org.apache.axiom.soap.impl.mixin</weavablePackage>
                                 <weavablePackage>org.apache.axiom.dom.impl.mixin</weavablePackage>
@@ -234,7 +233,6 @@
                             org.apache.axiom.om.impl.*,
                             org.apache.axiom.soap.impl.*,
                             org.apache.axiom.dom.*,
-                            org.apache.axiom.shared.*,
                             org.apache.axiom.util.xml.*
                         </Private-Package>
                     </instructions>
diff --git a/implementations/axiom-impl/pom.xml b/implementations/axiom-impl/pom.xml
index 044a492..1d5dd7a 100644
--- a/implementations/axiom-impl/pom.xml
+++ b/implementations/axiom-impl/pom.xml
@@ -96,7 +96,6 @@
                         <configuration>
                             <weavablePackages>
                                 <weavablePackage>org.apache.axiom.core.impl.mixin</weavablePackage>
-                                <weavablePackage>org.apache.axiom.shared</weavablePackage>
                                 <weavablePackage>org.apache.axiom.om.impl.mixin</weavablePackage>
                                 <weavablePackage>org.apache.axiom.soap.impl.mixin</weavablePackage>
                                 <weavablePackage>org.apache.axiom.om.impl.llom.mixin</weavablePackage>
@@ -192,7 +191,6 @@
                             !org.apache.axiom.om.impl,
                             org.apache.axiom.om.impl.*,
                             org.apache.axiom.soap.impl.*,
-                            org.apache.axiom.shared.*,
                             org.apache.axiom.util.xml.*
                         </Private-Package>
                     </instructions>
diff --git a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentTypeMixin.java b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentTypeMixin.java
index 31c6de8..6aaab4f 100644
--- a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentTypeMixin.java
+++ b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentTypeMixin.java
@@ -49,6 +49,21 @@ public abstract class DOMDocumentTypeMixin implements DOMDocumentType {
     }
 
     @Override
+    public final String getPublicId() {
+        return coreGetPublicId();
+    }
+
+    @Override
+    public final String getSystemId() {
+        return coreGetSystemId();
+    }
+
+    @Override
+    public final String getInternalSubset() {
+        return coreGetInternalSubset();
+    }
+
+    @Override
     public final NamedNodeMap getEntities() {
         throw new UnsupportedOperationException();
     }
diff --git a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNSAwareNamedNodeMixin.java b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNSAwareNamedNodeMixin.java
index 2dc7637..91b11fa 100644
--- a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNSAwareNamedNodeMixin.java
+++ b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNSAwareNamedNodeMixin.java
@@ -27,6 +27,23 @@ import org.w3c.dom.DOMException;
 @Mixin
 public abstract class DOMNSAwareNamedNodeMixin implements DOMNSAwareNamedNode {
     @Override
+    public final String getLocalName() {
+        return coreGetLocalName();
+    }
+
+    @Override
+    public final String getNamespaceURI() {
+        String namespaceURI = coreGetNamespaceURI();
+        return namespaceURI.length() == 0 ? null : namespaceURI;
+    }
+
+    @Override
+    public final String getPrefix() {
+        String prefix = coreGetPrefix();
+        return prefix.length() == 0 ? null : prefix;
+    }
+
+    @Override
     public final void setPrefix(String prefix) throws DOMException {
         if (prefix == null) {
             prefix = "";
diff --git a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMProcessingInstructionMixin.java b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMProcessingInstructionMixin.java
index c826287..6c8f8f5 100644
--- a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMProcessingInstructionMixin.java
+++ b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMProcessingInstructionMixin.java
@@ -33,6 +33,11 @@ public abstract class DOMProcessingInstructionMixin implements DOMProcessingInst
     }
 
     @Override
+    public final String getTarget() {
+        return coreGetTarget();
+    }
+
+    @Override
     public final String getData() {
         try {
             return coreGetCharacterData().toString();
diff --git a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocTypeMixin.java b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocTypeMixin.java
index 8fc359f..e1b0a3f 100644
--- a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocTypeMixin.java
+++ b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocTypeMixin.java
@@ -41,6 +41,21 @@ public abstract class AxiomDocTypeMixin implements AxiomDocType {
     }
 
     @Override
+    public final String getPublicId() {
+        return coreGetPublicId();
+    }
+
+    @Override
+    public final String getSystemId() {
+        return coreGetSystemId();
+    }
+
+    @Override
+    public final String getInternalSubset() {
+        return coreGetInternalSubset();
+    }
+
+    @Override
     public final void serialize(XMLStreamWriter writer, boolean cache) throws XMLStreamException {
         try {
             internalSerialize(new XMLStreamWriterHandler(writer), cache);
diff --git a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomNamedInformationItemMixin.java b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomNamedInformationItemMixin.java
index 715c95a..8db82b2 100644
--- a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomNamedInformationItemMixin.java
+++ b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomNamedInformationItemMixin.java
@@ -83,6 +83,23 @@ public abstract class AxiomNamedInformationItemMixin implements AxiomNamedInform
     }
     
     @Override
+    public final String getLocalName() {
+        return coreGetLocalName();
+    }
+
+    @Override
+    public final String getNamespaceURI() {
+        String namespaceURI = coreGetNamespaceURI();
+        return namespaceURI.length() == 0 ? null : namespaceURI;
+    }
+
+    @Override
+    public final String getPrefix() {
+        String prefix = coreGetPrefix();
+        return prefix.length() == 0 ? null : prefix;
+    }
+
+    @Override
     public final OMNamespace defaultGetNamespace() {
         return namespace;
     }
diff --git a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomProcessingInstructionMixin.java b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomProcessingInstructionMixin.java
index d32ed00..20f0b32 100644
--- a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomProcessingInstructionMixin.java
+++ b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomProcessingInstructionMixin.java
@@ -35,6 +35,11 @@ public abstract class AxiomProcessingInstructionMixin implements AxiomProcessing
     }
 
     @Override
+    public final String getTarget() {
+        return coreGetTarget();
+    }
+
+    @Override
     public final void setTarget(String target) {
         coreSetTarget(target);
     }
diff --git a/mixins/pom.xml b/mixins/pom.xml
index 1899306..3c5aa16 100644
--- a/mixins/pom.xml
+++ b/mixins/pom.xml
@@ -36,7 +36,6 @@
         <module>core-mixins</module>
         <module>dom-mixins</module>
         <module>om-mixins</module>
-        <module>shared-mixins</module>
     </modules>
 
     <build>
diff --git a/mixins/shared-mixins/BUILD b/mixins/shared-mixins/BUILD
deleted file mode 100644
index 61bfde4..0000000
--- a/mixins/shared-mixins/BUILD
+++ /dev/null
@@ -1,32 +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.
-#
-
-load('//buildutils:aspectj.bzl', 'aj_library')
-
-aj_library(
-    name = "shared-aspects",
-    srcs = glob([
-        "src/main/java/**/*.java",
-        "src/main/java/**/*.aj",
-    ]),
-    deps = [
-        "//aspects/core-aspects:interface",
-    ],
-    visibility = ["//visibility:public"],
-)
diff --git a/mixins/shared-mixins/pom.xml b/mixins/shared-mixins/pom.xml
deleted file mode 100644
index 34430c8..0000000
--- a/mixins/shared-mixins/pom.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.ws.commons.axiom</groupId>
-        <artifactId>mixins</artifactId>
-        <version>1.3.1-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>shared-mixins</artifactId>
-
-    <name>Shared Mixins</name>
-    <description>
-        Contains mixins for methods that are shared between DOM and Axiom.
-    </description>
-    <url>http://ws.apache.org/axiom/</url>
-
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>core-mixins</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>axiom-weaver-annotations</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/mixins/shared-mixins/src/main/java/org/apache/axiom/shared/DocumentTypeDeclarationMixin.java b/mixins/shared-mixins/src/main/java/org/apache/axiom/shared/DocumentTypeDeclarationMixin.java
deleted file mode 100644
index 1724ca0..0000000
--- a/mixins/shared-mixins/src/main/java/org/apache/axiom/shared/DocumentTypeDeclarationMixin.java
+++ /dev/null
@@ -1,37 +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.shared;
-
-import org.apache.axiom.core.CoreDocumentTypeDeclaration;
-import org.apache.axiom.weaver.annotation.Mixin;
-
-@Mixin
-public abstract class DocumentTypeDeclarationMixin implements CoreDocumentTypeDeclaration {
-    public final String getPublicId() {
-        return coreGetPublicId();
-    }
-
-    public final String getSystemId() {
-        return coreGetSystemId();
-    }
-
-    public final String getInternalSubset() {
-        return coreGetInternalSubset();
-    }
-}
diff --git a/mixins/shared-mixins/src/main/java/org/apache/axiom/shared/NSAwareNamedNodeMixin.java b/mixins/shared-mixins/src/main/java/org/apache/axiom/shared/NSAwareNamedNodeMixin.java
deleted file mode 100644
index 61af043..0000000
--- a/mixins/shared-mixins/src/main/java/org/apache/axiom/shared/NSAwareNamedNodeMixin.java
+++ /dev/null
@@ -1,39 +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.shared;
-
-import org.apache.axiom.core.CoreNSAwareNamedNode;
-import org.apache.axiom.weaver.annotation.Mixin;
-
-@Mixin
-public abstract class NSAwareNamedNodeMixin implements CoreNSAwareNamedNode {
-    public final String getLocalName() {
-        return coreGetLocalName();
-    }
-
-    public final String getNamespaceURI() {
-        String namespaceURI = coreGetNamespaceURI();
-        return namespaceURI.length() == 0 ? null : namespaceURI;
-    }
-
-    public final String getPrefix() {
-        String prefix = coreGetPrefix();
-        return prefix.length() == 0 ? null : prefix;
-    }
-}
diff --git a/mixins/shared-mixins/src/main/java/org/apache/axiom/shared/package-info.java b/mixins/shared-mixins/src/main/java/org/apache/axiom/shared/package-info.java
deleted file mode 100644
index 5f92d29..0000000
--- a/mixins/shared-mixins/src/main/java/org/apache/axiom/shared/package-info.java
+++ /dev/null
@@ -1,24 +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.
- */
-@org.apache.axiom.weaver.annotation.WeavablePackage(mixins={
-        DocumentTypeDeclarationMixin.class,
-        NSAwareNamedNodeMixin.class,
-        ProcessingInstructionMixin.class,
-})
-package org.apache.axiom.shared;