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 25849f2d1 Use pattern matching instanceof
25849f2d1 is described below

commit 25849f2d18780fb543c91ebe72ced9d0ba16c504
Author: Andreas Veithen-Knowles <[email protected]>
AuthorDate: Sun Feb 1 09:59:23 2026 +0000

    Use pattern matching instanceof
---
 .../main/java/org/apache/axiom/mime/MediaType.java |  3 +-
 .../org/apache/axiom/mime/PartInputStream.java     |  4 +-
 .../apache/axiom/om/xpath/DocumentNavigator.java   | 37 ++++++++---------
 .../java/org/apache/axiom/om/MethodSignature.java  |  3 +-
 .../apache/axiom/om/ds/OMDataSourceExtBase.java    |  8 ++--
 .../org/apache/axiom/om/impl/OMNamespaceImpl.java  |  3 +-
 .../axiom/om/impl/llom/util/XMLComparator.java     |  3 +-
 .../om/impl/traverse/OMChildrenQNameIterator.java  |  4 +-
 .../OMChildrenWithSpecificAttributeIterator.java   |  4 +-
 .../om/impl/traverse/OMDescendantsIterator.java    |  4 +-
 .../om/impl/traverse/OMQNameFilterIterator.java    |  2 +-
 .../traverse/OMQualifiedNameFilterIterator.java    |  5 +--
 .../org/apache/axiom/om/util/ElementHelper.java    |  2 +-
 .../org/apache/axiom/util/blob/OverflowBlob.java   |  4 +-
 .../axiom/util/activation/DataHandlerUtils.java    | 16 ++++----
 .../axiom/util/activation/DataSourceUtils.java     |  8 ++--
 .../apache/axiom/om/ds/jaxb/JAXBOMDataSource.java  | 15 +++----
 .../axiom/attachments/ConfigurableDataHandler.java |  4 +-
 .../axiom/attachments/LegacyPartDataHandler.java   |  4 +-
 .../axiom/blob/suite/TestWriteAfterCommit.java     |  4 +-
 .../stream/sax/input/XmlHandlerContentHandler.java |  4 +-
 .../sax/output/ContentHandlerXmlHandler.java       |  8 ++--
 .../axiom/core/stream/serializer/Serializer.java   |  8 ++--
 .../axiom/core/stream/stax/StAXExceptionUtil.java  |  8 ++--
 .../stream/stax/pull/input/StAXPullReader.java     |  4 +-
 .../stax/push/input/XmlHandlerStreamWriter.java    |  4 +-
 .../core/stream/util/CharacterDataAccumulator.java | 12 +++---
 .../java/org/apache/axiom/util/io/IOUtils.java     |  4 +-
 .../dom/factory/DOMStAXParserConfiguration.java    |  3 +-
 .../java/org/apache/axiom/core/ElementMatcher.java |  4 +-
 .../apache/axiom/core/NSAwareAttributeMatcher.java | 11 +++--
 .../axiom/core/NamespaceDeclarationMatcher.java    |  4 +-
 .../org/apache/axiom/core/impl/TreeWalkerImpl.java | 11 ++---
 .../axiom/core/impl/builder/BuilderHandler.java    |  4 +-
 .../impl/mixin/CoreCharacterDataNodeMixin.java     |  4 +-
 .../axiom/core/impl/mixin/CoreNodeMixin.java       |  4 +-
 .../axiom/core/impl/mixin/CoreParentNodeMixin.java |  8 ++--
 .../org/apache/axiom/dom/DOMConfigurationImpl.java |  4 +-
 .../axiom/dom/impl/mixin/DOMDocumentMixin.java     | 13 +++---
 .../axiom/dom/impl/mixin/DOMElementMixin.java      |  6 +--
 .../axiom/dom/impl/mixin/DOMParentNodeMixin.java   | 37 ++++++++---------
 .../axiom/dom/impl/mixin/DOMTextNodeMixin.java     |  8 ++--
 .../om/impl/common/AxiomExceptionTranslator.java   |  8 ++--
 .../axiom/om/impl/common/AxiomSemantics.java       |  3 +-
 .../axiom/om/impl/common/DeferredNamespace.java    |  3 +-
 .../axiom/om/impl/common/NamespaceIterator.java    |  4 +-
 .../axiom/om/impl/common/OMNamespaceImpl.java      |  3 +-
 .../impl/common/builder/CustomBuilderManager.java  |  6 +--
 .../om/impl/common/factory/OMFactoryImpl.java      | 11 +++--
 .../impl/common/factory/meta/BuilderFactory.java   |  9 ++--
 .../om/impl/common/factory/meta/BuilderSpec.java   | 15 ++++---
 .../om/impl/common/util/OMDataSourceUtil.java      |  8 ++--
 .../org/apache/axiom/om/impl/intf/TextContent.java | 12 +++---
 .../axiom/om/impl/mixin/AxiomChildNodeMixin.java   |  2 +-
 .../axiom/om/impl/mixin/AxiomContainerMixin.java   | 10 ++---
 .../axiom/om/impl/mixin/AxiomDocumentMixin.java    |  4 +-
 .../axiom/om/impl/mixin/AxiomElementMixin.java     | 15 ++++---
 .../om/impl/mixin/AxiomSourcedElementMixin.java    | 48 +++++++++++-----------
 .../apache/axiom/om/impl/mixin/AxiomTextMixin.java | 16 ++++----
 .../NamespaceContextPreservationFilterHandler.java |  5 ++-
 .../om/impl/stream/ds/PushOMDataSourceReader.java  |  9 ++--
 .../axiom/om/impl/stream/sax/XMLReaderImpl.java    |  8 ++--
 .../om/impl/stream/stax/pull/BlobReaderImpl.java   |  2 +-
 .../stream/stax/pull/CharacterDataReaderImpl.java  | 27 ++++++------
 .../stream/stax/push/XMLStreamWriterHandler.java   |  7 ++--
 .../impl/stream/xop/XOPEncodingFilterHandler.java  | 17 ++++----
 .../soap/impl/common/SOAPHeaderBlockHelper.java    | 11 ++---
 .../soap/impl/common/SOAPHeaderBlockMapper.java    |  4 +-
 .../impl/common/builder/SOAP11BuilderHelper.java   |  4 +-
 .../axiom/soap/impl/mixin/AxiomSOAPBodyMixin.java  |  2 +-
 .../soap/impl/mixin/AxiomSOAPElementMixin.java     |  6 +--
 .../soap/impl/mixin/AxiomSOAPEnvelopeMixin.java    | 10 ++---
 .../soap/impl/mixin/AxiomSOAPHeaderBlockMixin.java |  4 +-
 pom.xml                                            |  2 +-
 .../om/impl/mtom/MTOMStAXSOAPModelBuilderTest.java |  7 +---
 .../axiom/ts/dimension/ExpansionStrategy.java      | 12 +++---
 .../serialization/SerializeToXMLStreamWriter.java  |  4 +-
 .../org/apache/axiom/ts/om/DigestTestCase.java     |  8 ++--
 .../ts/om/builder/TestStandaloneConfiguration.java |  4 +-
 .../axiom/ts/om/sourcedelement/TestSerialize.java  |  4 +-
 ...SerializeOMDataSourceWritingToOutputStream.java |  7 ++--
 .../apache/axiom/ts/om/xop/TestSetOptimize.java    |  3 +-
 .../TestRegisterCustomBuilderForPayload.java       |  4 +-
 .../axiom/ts/soap/envelope/CloneTestCase.java      | 18 ++++----
 .../axiom/ts/soap12/mtom/TestBuilderDetach.java    |  3 +-
 .../org/apache/axiom/truth/AxiomTraverser.java     |  8 ++--
 .../java/org/apache/axiom/truth/xml/DOMXML.java    |  2 +-
 87 files changed, 323 insertions(+), 366 deletions(-)

diff --git a/axiom-api/src/main/java/org/apache/axiom/mime/MediaType.java 
b/axiom-api/src/main/java/org/apache/axiom/mime/MediaType.java
index 244bbbb8a..a5d834e79 100644
--- a/axiom-api/src/main/java/org/apache/axiom/mime/MediaType.java
+++ b/axiom-api/src/main/java/org/apache/axiom/mime/MediaType.java
@@ -150,8 +150,7 @@ public final class MediaType {
 
     @Override
     public boolean equals(Object obj) {
-        if (obj instanceof MediaType) {
-            MediaType other = (MediaType) obj;
+        if (obj instanceof MediaType other) {
             return primaryType.equalsIgnoreCase(other.primaryType)
                     && subType.equalsIgnoreCase(other.subType);
         } else {
diff --git a/axiom-api/src/main/java/org/apache/axiom/mime/PartInputStream.java 
b/axiom-api/src/main/java/org/apache/axiom/mime/PartInputStream.java
index c0503a546..4752d3d85 100644
--- a/axiom-api/src/main/java/org/apache/axiom/mime/PartInputStream.java
+++ b/axiom-api/src/main/java/org/apache/axiom/mime/PartInputStream.java
@@ -41,8 +41,8 @@ final class PartInputStream extends InputStream {
     }
 
     private static InputStream getInputStream(WritableBlob content) throws 
IOException {
-        if (content instanceof MemoryBlob) {
-            return ((MemoryBlob) content).readOnce();
+        if (content instanceof MemoryBlob memoryBlob) {
+            return memoryBlob.readOnce();
         } else {
             return content.getInputStream();
         }
diff --git 
a/axiom-api/src/main/java/org/apache/axiom/om/xpath/DocumentNavigator.java 
b/axiom-api/src/main/java/org/apache/axiom/om/xpath/DocumentNavigator.java
index 31eb28fd7..4d9a03c0e 100644
--- a/axiom-api/src/main/java/org/apache/axiom/om/xpath/DocumentNavigator.java
+++ b/axiom-api/src/main/java/org/apache/axiom/om/xpath/DocumentNavigator.java
@@ -259,8 +259,8 @@ public class DocumentNavigator extends DefaultNavigator {
     private StringBuffer getStringValue(OMNode node, StringBuffer buffer) {
         if (isText(node)) {
             buffer.append(((OMText) node).getText());
-        } else if (node instanceof OMElement) {
-            Iterator<OMNode> children = ((OMElement) node).getChildren();
+        } else if (node instanceof OMElement element) {
+            Iterator<OMNode> children = element.getChildren();
             while (children.hasNext()) {
                 getStringValue(children.next(), buffer);
             }
@@ -325,8 +325,8 @@ public class DocumentNavigator extends DefaultNavigator {
      */
     @Override
     public Iterator<?> getChildAxisIterator(Object contextNode) throws 
UnsupportedAxisException {
-        if (contextNode instanceof OMContainer) {
-            return ((OMContainer) contextNode).getChildren();
+        if (contextNode instanceof OMContainer container) {
+            return container.getChildren();
         }
         return JaxenConstants.EMPTY_ITERATOR;
     }
@@ -366,10 +366,9 @@ public class DocumentNavigator extends DefaultNavigator {
     @Override
     public Iterator<?> getNamespaceAxisIterator(Object contextNode)
             throws UnsupportedAxisException {
-        if (!(contextNode instanceof OMElement)) {
+        if (!(contextNode instanceof OMElement omContextNode)) {
             return JaxenConstants.EMPTY_ITERATOR;
         }
-        OMElement omContextNode = (OMElement) contextNode;
         List<OMNamespaceEx> nsList = new ArrayList<OMNamespaceEx>();
         Set<String> prefixes = new HashSet<String>();
         for (OMContainer context = omContextNode;
@@ -463,12 +462,12 @@ public class DocumentNavigator extends DefaultNavigator {
      */
     @Override
     public Iterator<?> getParentAxisIterator(Object contextNode) throws 
UnsupportedAxisException {
-        if (contextNode instanceof OMNode) {
-            return new SingleObjectIterator(((OMNode) 
contextNode).getParent());
-        } else if (contextNode instanceof OMNamespaceEx) {
-            return new SingleObjectIterator(((OMNamespaceEx) 
contextNode).getParent());
-        } else if (contextNode instanceof OMAttribute) {
-            return new SingleObjectIterator(((OMAttribute) 
contextNode).getOwner());
+        if (contextNode instanceof OMNode omNode) {
+            return new SingleObjectIterator(omNode.getParent());
+        } else if (contextNode instanceof OMNamespaceEx omNamespaceEx) {
+            return new SingleObjectIterator(omNamespaceEx.getParent());
+        } else if (contextNode instanceof OMAttribute omAttribute) {
+            return new SingleObjectIterator(omAttribute.getOwner());
         }
         return JaxenConstants.EMPTY_ITERATOR;
     }
@@ -499,8 +498,7 @@ public class DocumentNavigator extends DefaultNavigator {
     public Iterator<?> getFollowingSiblingAxisIterator(Object contextNode)
             throws UnsupportedAxisException {
         List<OMNode> list = new ArrayList<OMNode>();
-        if (contextNode != null && contextNode instanceof OMNode) {
-            OMNode node = (OMNode) contextNode;
+        if (contextNode != null && contextNode instanceof OMNode node) {
             while (true) {
                 node = node.getNextOMSibling();
                 if (node != null) {
@@ -525,8 +523,7 @@ public class DocumentNavigator extends DefaultNavigator {
     public Iterator<?> getPrecedingSiblingAxisIterator(Object contextNode)
             throws UnsupportedAxisException {
         List<OMNode> list = new ArrayList<OMNode>();
-        if (contextNode != null && contextNode instanceof OMNode) {
-            OMNode node = (OMNode) contextNode;
+        if (contextNode != null && contextNode instanceof OMNode node) {
             while (true) {
                 node = node.getPreviousOMSibling();
                 if (node != null) {
@@ -703,10 +700,10 @@ public class DocumentNavigator extends DefaultNavigator {
     public Object getParentNode(Object contextNode) throws 
UnsupportedAxisException {
         if (contextNode == null || contextNode instanceof OMDocument) {
             return null;
-        } else if (contextNode instanceof OMAttribute) {
-            return ((OMAttribute) contextNode).getOwner();
-        } else if (contextNode instanceof OMNamespaceEx) {
-            return ((OMNamespaceEx) contextNode).getParent();
+        } else if (contextNode instanceof OMAttribute attribute) {
+            return attribute.getOwner();
+        } else if (contextNode instanceof OMNamespaceEx ns) {
+            return ns.getParent();
         }
         return ((OMNode) contextNode).getParent();
     }
diff --git a/axiom-api/src/test/java/org/apache/axiom/om/MethodSignature.java 
b/axiom-api/src/test/java/org/apache/axiom/om/MethodSignature.java
index 951dd0203..2f58b3a75 100644
--- a/axiom-api/src/test/java/org/apache/axiom/om/MethodSignature.java
+++ b/axiom-api/src/test/java/org/apache/axiom/om/MethodSignature.java
@@ -39,8 +39,7 @@ public class MethodSignature {
 
     @Override
     public boolean equals(Object obj) {
-        if (obj instanceof MethodSignature) {
-            MethodSignature other = (MethodSignature) obj;
+        if (obj instanceof MethodSignature other) {
             return other.name.equals(name) && 
Arrays.equals(other.parameterTypes, parameterTypes);
         } else {
             return false;
diff --git 
a/axiom-compat/src/main/java/org/apache/axiom/om/ds/OMDataSourceExtBase.java 
b/axiom-compat/src/main/java/org/apache/axiom/om/ds/OMDataSourceExtBase.java
index 8f59b23a9..fd08a21c5 100644
--- a/axiom-compat/src/main/java/org/apache/axiom/om/ds/OMDataSourceExtBase.java
+++ b/axiom-compat/src/main/java/org/apache/axiom/om/ds/OMDataSourceExtBase.java
@@ -180,8 +180,8 @@ public abstract class OMDataSourceExtBase implements 
OMDataSourceExt {
      * @return OutputStream or null
      */
     private static OutputStream getOutputStream(XMLStreamWriter writer) throws 
XMLStreamException {
-        if (writer instanceof MTOMXMLStreamWriter) {
-            return ((MTOMXMLStreamWriter) writer).getOutputStream();
+        if (writer instanceof MTOMXMLStreamWriter mtomXmlStreamWriter) {
+            return mtomXmlStreamWriter.getOutputStream();
         }
         return null;
     }
@@ -192,8 +192,8 @@ public abstract class OMDataSourceExtBase implements 
OMDataSourceExt {
      * @return String or null
      */
     private static String getCharacterEncoding(XMLStreamWriter writer) {
-        if (writer instanceof MTOMXMLStreamWriter) {
-            return ((MTOMXMLStreamWriter) writer).getCharSetEncoding();
+        if (writer instanceof MTOMXMLStreamWriter mtomXmlStreamWriter) {
+            return mtomXmlStreamWriter.getCharSetEncoding();
         }
         return null;
     }
diff --git 
a/axiom-compat/src/main/java/org/apache/axiom/om/impl/OMNamespaceImpl.java 
b/axiom-compat/src/main/java/org/apache/axiom/om/impl/OMNamespaceImpl.java
index 59a992376..0bb48c914 100644
--- a/axiom-compat/src/main/java/org/apache/axiom/om/impl/OMNamespaceImpl.java
+++ b/axiom-compat/src/main/java/org/apache/axiom/om/impl/OMNamespaceImpl.java
@@ -61,8 +61,7 @@ public class OMNamespaceImpl implements OMNamespace {
 
     @Override
     public boolean equals(Object obj) {
-        if (!(obj instanceof OMNamespace)) return false;
-        OMNamespace other = (OMNamespace) obj;
+        if (!(obj instanceof OMNamespace other)) return false;
         String otherPrefix = other.getPrefix();
         return (uri.equals(other.getNamespaceURI())
                 && (prefix == null ? otherPrefix == null : 
prefix.equals(otherPrefix)));
diff --git 
a/axiom-compat/src/main/java/org/apache/axiom/om/impl/llom/util/XMLComparator.java
 
b/axiom-compat/src/main/java/org/apache/axiom/om/impl/llom/util/XMLComparator.java
index aab241c72..5958daf0d 100644
--- 
a/axiom-compat/src/main/java/org/apache/axiom/om/impl/llom/util/XMLComparator.java
+++ 
b/axiom-compat/src/main/java/org/apache/axiom/om/impl/llom/util/XMLComparator.java
@@ -142,8 +142,7 @@ public class XMLComparator {
         Iterator elementOneChildren = elementOne.getChildren();
         while (elementOneChildren.hasNext()) {
             OMNode omNode = (OMNode) elementOneChildren.next();
-            if (omNode instanceof OMElement) {
-                OMElement elementOneChild = (OMElement) omNode;
+            if (omNode instanceof OMElement elementOneChild) {
                 OMElement elementTwoChild = null;
                 // Do the comparison only if the element is not ignorable
                 if (!isIgnorable(elementOneChild)) {
diff --git 
a/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMChildrenQNameIterator.java
 
b/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMChildrenQNameIterator.java
index 233c71951..f6ba75ed1 100644
--- 
a/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMChildrenQNameIterator.java
+++ 
b/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMChildrenQNameIterator.java
@@ -60,8 +60,8 @@ public class OMChildrenQNameIterator extends OMFilterIterator 
{
 
     @Override
     protected boolean matches(OMNode node) {
-        if (node instanceof OMElement) {
-            QName thisQName = ((OMElement) node).getQName();
+        if (node instanceof OMElement element) {
+            QName thisQName = element.getQName();
             // A null givenName is an indicator to return all elements
             return givenQName == null || isEqual(givenQName, thisQName);
         } else {
diff --git 
a/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMChildrenWithSpecificAttributeIterator.java
 
b/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMChildrenWithSpecificAttributeIterator.java
index 831150f48..c9694acb3 100644
--- 
a/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMChildrenWithSpecificAttributeIterator.java
+++ 
b/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMChildrenWithSpecificAttributeIterator.java
@@ -62,8 +62,8 @@ public class OMChildrenWithSpecificAttributeIterator extends 
OMFilterIterator {
 
     @Override
     protected boolean matches(OMNode node) {
-        if (node instanceof OMElement) {
-            OMAttribute attr = ((OMElement) node).getAttribute(attributeName);
+        if (node instanceof OMElement element) {
+            OMAttribute attr = element.getAttribute(attributeName);
             return (attr != null)
                     && (doCaseSensitiveValueChecks
                             ? attr.getAttributeValue().equals(attributeValue)
diff --git 
a/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMDescendantsIterator.java
 
b/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMDescendantsIterator.java
index 8d6119cb8..3e1339ba9 100644
--- 
a/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMDescendantsIterator.java
+++ 
b/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMDescendantsIterator.java
@@ -36,8 +36,8 @@ public class OMDescendantsIterator extends OMAbstractIterator 
{
 
     @Override
     protected OMNode getNextNode(OMNode currentNode) {
-        if (currentNode instanceof OMContainer) {
-            OMNode firstChild = ((OMContainer) currentNode).getFirstOMChild();
+        if (currentNode instanceof OMContainer container) {
+            OMNode firstChild = container.getFirstOMChild();
             if (firstChild != null) {
                 level++;
                 return firstChild;
diff --git 
a/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMQNameFilterIterator.java
 
b/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMQNameFilterIterator.java
index e0b234218..7e5c71c11 100644
--- 
a/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMQNameFilterIterator.java
+++ 
b/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMQNameFilterIterator.java
@@ -43,6 +43,6 @@ public class OMQNameFilterIterator extends OMFilterIterator {
 
     @Override
     protected boolean matches(OMNode node) {
-        return node instanceof OMElement && ((OMElement) 
node).getQName().equals(qname);
+        return node instanceof OMElement element && 
element.getQName().equals(qname);
     }
 }
diff --git 
a/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMQualifiedNameFilterIterator.java
 
b/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMQualifiedNameFilterIterator.java
index 0396f209e..d375ee08b 100644
--- 
a/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMQualifiedNameFilterIterator.java
+++ 
b/axiom-compat/src/main/java/org/apache/axiom/om/impl/traverse/OMQualifiedNameFilterIterator.java
@@ -50,12 +50,11 @@ public class OMQualifiedNameFilterIterator extends 
OMFilterIterator {
 
     @Override
     protected boolean matches(OMNode node) {
-        if (node instanceof OMElement) {
-            OMElement element = (OMElement) node;
+        if (node instanceof OMElement element) {
             if (!localName.equals(element.getLocalName())) {
                 return false;
             } else {
-                OMNamespace ns = ((OMElement) node).getNamespace();
+                OMNamespace ns = element.getNamespace();
                 if (prefix == null) {
                     return ns == null || ns.getPrefix().length() == 0;
                 } else {
diff --git 
a/axiom-compat/src/main/java/org/apache/axiom/om/util/ElementHelper.java 
b/axiom-compat/src/main/java/org/apache/axiom/om/util/ElementHelper.java
index 1de3e5675..ea0305a6a 100644
--- a/axiom-compat/src/main/java/org/apache/axiom/om/util/ElementHelper.java
+++ b/axiom-compat/src/main/java/org/apache/axiom/om/util/ElementHelper.java
@@ -199,7 +199,7 @@ public class ElementHelper {
      */
     public static SOAPHeaderBlock toSOAPHeaderBlock(OMElement omElement, 
SOAPFactory factory)
             throws Exception {
-        if (omElement instanceof SOAPHeaderBlock) return (SOAPHeaderBlock) 
omElement;
+        if (omElement instanceof SOAPHeaderBlock soapHeaderBlock) return 
soapHeaderBlock;
 
         QName name = omElement.getQName();
         String localName = name.getLocalPart();
diff --git 
a/axiom-compat/src/main/java/org/apache/axiom/util/blob/OverflowBlob.java 
b/axiom-compat/src/main/java/org/apache/axiom/util/blob/OverflowBlob.java
index b8a4d9e7f..59ece2a89 100644
--- a/axiom-compat/src/main/java/org/apache/axiom/util/blob/OverflowBlob.java
+++ b/axiom-compat/src/main/java/org/apache/axiom/util/blob/OverflowBlob.java
@@ -408,8 +408,8 @@ public class OverflowBlob implements WritableBlob {
                 throw new StreamCopyException(StreamCopyException.READ, ex);
             }
             try {
-                if (out instanceof ReadFromSupport) {
-                    ((ReadFromSupport) out).readFrom(in, -1);
+                if (out instanceof ReadFromSupport readFromSupport) {
+                    readFromSupport.readFrom(in, -1);
                 } else {
                     byte[] buf = new byte[4096];
                     while (true) {
diff --git 
a/axiom-jakarta-activation/src/main/java/org/apache/axiom/util/activation/DataHandlerUtils.java
 
b/axiom-jakarta-activation/src/main/java/org/apache/axiom/util/activation/DataHandlerUtils.java
index fa0247644..d4a3491f4 100644
--- 
a/axiom-jakarta-activation/src/main/java/org/apache/axiom/util/activation/DataHandlerUtils.java
+++ 
b/axiom-jakarta-activation/src/main/java/org/apache/axiom/util/activation/DataHandlerUtils.java
@@ -36,11 +36,11 @@ public final class DataHandlerUtils {
      *     DataHandler}
      */
     public static DataHandler getDataHandler(Blob blob) {
-        if (blob instanceof DataHandlerBlob) {
-            return ((DataHandlerBlob) blob).getDataHandler();
+        if (blob instanceof DataHandlerBlob dataHandlerBlob) {
+            return dataHandlerBlob.getDataHandler();
         }
-        if (blob instanceof PartDataHandlerBlob) {
-            return ((PartDataHandlerBlob) blob).getDataHandler();
+        if (blob instanceof PartDataHandlerBlob partDataHandlerBlob) {
+            return partDataHandlerBlob.getDataHandler();
         }
         return null;
     }
@@ -65,11 +65,11 @@ public final class DataHandlerUtils {
      * @return a {@link Blob} representing the {@link DataHandler}
      */
     public static Blob toBlob(DataHandler dh) {
-        if (dh instanceof BlobDataHandler) {
-            return ((BlobDataHandler) dh).getBlob();
+        if (dh instanceof BlobDataHandler blobDataHandler) {
+            return blobDataHandler.getBlob();
         }
-        if (dh instanceof PartDataHandler) {
-            return ((PartDataHandler) dh).getBlob();
+        if (dh instanceof PartDataHandler partDataHandler) {
+            return partDataHandler.getBlob();
         }
         return new DataHandlerBlob(dh);
     }
diff --git 
a/axiom-jakarta-activation/src/main/java/org/apache/axiom/util/activation/DataSourceUtils.java
 
b/axiom-jakarta-activation/src/main/java/org/apache/axiom/util/activation/DataSourceUtils.java
index 108eee4db..d91ed1909 100644
--- 
a/axiom-jakarta-activation/src/main/java/org/apache/axiom/util/activation/DataSourceUtils.java
+++ 
b/axiom-jakarta-activation/src/main/java/org/apache/axiom/util/activation/DataSourceUtils.java
@@ -56,8 +56,8 @@ final class DataSourceUtils {
      * @return (an estimation of) the size of the data or <code>-1</code> if 
the size is unknown
      */
     static long getSize(DataSource ds) {
-        if (ds instanceof SizeAwareDataSource) {
-            return ((SizeAwareDataSource) ds).getSize();
+        if (ds instanceof SizeAwareDataSource sizeAwareDataSource) {
+            return sizeAwareDataSource.getSize();
         } else if (byteArrayDataSourceClass != null && 
byteArrayDataSourceClass.isInstance(ds)) {
             // Special optimization for JavaMail's ByteArrayDataSource 
(Axiom's ByteArrayDataSource
             // already implements SizeAwareDataSource and doesn't need further 
optimization):
@@ -69,10 +69,10 @@ final class DataSourceUtils {
                 // We will never get here...
                 return -1;
             }
-        } else if (ds instanceof FileDataSource) {
+        } else if (ds instanceof FileDataSource fileDataSource) {
             // Special optimization for FileDataSources: no need to open and 
read the file
             // to know its size!
-            return ((FileDataSource) ds).getFile().length();
+            return fileDataSource.getFile().length();
         } else {
             return -1;
         }
diff --git 
a/axiom-jakarta-jaxb/src/main/java/org/apache/axiom/om/ds/jaxb/JAXBOMDataSource.java
 
b/axiom-jakarta-jaxb/src/main/java/org/apache/axiom/om/ds/jaxb/JAXBOMDataSource.java
index f16859b93..7f4541cb0 100644
--- 
a/axiom-jakarta-jaxb/src/main/java/org/apache/axiom/om/ds/jaxb/JAXBOMDataSource.java
+++ 
b/axiom-jakarta-jaxb/src/main/java/org/apache/axiom/om/ds/jaxb/JAXBOMDataSource.java
@@ -80,19 +80,16 @@ public class JAXBOMDataSource extends 
AbstractPushOMDataSource implements QNameA
         try {
             Marshaller marshaller = context.createMarshaller();
             marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
-            if (writer instanceof MTOMXMLStreamWriter) {
-                MTOMXMLStreamWriter mtomWriter = (MTOMXMLStreamWriter) writer;
-                if (mtomWriter.isOptimized()) {
-                    marshaller.setAttachmentMarshaller(new 
AttachmentMarshallerImpl(mtomWriter));
-                }
+            if (writer instanceof MTOMXMLStreamWriter mtomWriter && 
mtomWriter.isOptimized()) {
+                marshaller.setAttachmentMarshaller(new 
AttachmentMarshallerImpl(mtomWriter));
             }
             marshaller.marshal(object, writer);
         } catch (JAXBException ex) {
             // Try to propagate the original exception if possible (to avoid 
unreadable stacktraces)
             Throwable cause = ex.getCause();
             while (cause != null) {
-                if (cause instanceof XMLStreamException) {
-                    throw (XMLStreamException) cause;
+                if (cause instanceof XMLStreamException xmlStreamException) {
+                    throw xmlStreamException;
                 }
                 cause = cause.getCause();
             }
@@ -102,8 +99,8 @@ public class JAXBOMDataSource extends 
AbstractPushOMDataSource implements QNameA
 
     private QName getQName() {
         if (cachedQName == null) {
-            if (object instanceof JAXBElement) {
-                cachedQName = ((JAXBElement<?>) object).getName();
+            if (object instanceof JAXBElement<?> jaxbElement) {
+                cachedQName = jaxbElement.getName();
             } else {
                 cachedQName = 
context.createJAXBIntrospector().getElementName(object);
                 if (cachedQName == null) {
diff --git 
a/axiom-legacy-attachments/src/main/java/org/apache/axiom/attachments/ConfigurableDataHandler.java
 
b/axiom-legacy-attachments/src/main/java/org/apache/axiom/attachments/ConfigurableDataHandler.java
index 7f5aa38f8..45dcb02d5 100644
--- 
a/axiom-legacy-attachments/src/main/java/org/apache/axiom/attachments/ConfigurableDataHandler.java
+++ 
b/axiom-legacy-attachments/src/main/java/org/apache/axiom/attachments/ConfigurableDataHandler.java
@@ -70,10 +70,10 @@ public class ConfigurableDataHandler extends DataHandler {
                 public ContentTransferEncoding getContentTransferEncoding(
                         Blob blob, ContentType contentType) {
                     DataHandler dataHandler = 
DataHandlerUtils.toDataHandler(blob);
-                    if (!(dataHandler instanceof ConfigurableDataHandler)) {
+                    if (!(dataHandler instanceof ConfigurableDataHandler 
configurableDataHandler)) {
                         return null;
                     }
-                    String cte = ((ConfigurableDataHandler) 
dataHandler).getTransferEncoding();
+                    String cte = configurableDataHandler.getTransferEncoding();
                     if (cte == null) {
                         return null;
                     }
diff --git 
a/axiom-legacy-attachments/src/main/java/org/apache/axiom/attachments/LegacyPartDataHandler.java
 
b/axiom-legacy-attachments/src/main/java/org/apache/axiom/attachments/LegacyPartDataHandler.java
index 8ae644965..e082e77cc 100644
--- 
a/axiom-legacy-attachments/src/main/java/org/apache/axiom/attachments/LegacyPartDataHandler.java
+++ 
b/axiom-legacy-attachments/src/main/java/org/apache/axiom/attachments/LegacyPartDataHandler.java
@@ -35,8 +35,8 @@ final class LegacyPartDataHandler extends PartDataHandler 
implements DataHandler
 
     @Override
     protected DataSource createDataSource(Blob content, String contentType) {
-        if (content instanceof LegacyTempFileBlob) {
-            return ((LegacyTempFileBlob) content).getDataSource(contentType);
+        if (content instanceof LegacyTempFileBlob legacyTempFileBlob) {
+            return legacyTempFileBlob.getDataSource(contentType);
         } else {
             return null;
         }
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteAfterCommit.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteAfterCommit.java
index 299f4bf05..17693271c 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteAfterCommit.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteAfterCommit.java
@@ -59,9 +59,9 @@ public class TestWriteAfterCommit extends 
WritableBlobTestCase {
         } catch (IOException ex) {
             // OK
         }
-        if (out instanceof ReadFromSupport) {
+        if (out instanceof ReadFromSupport readFromSupport) {
             try {
-                ((ReadFromSupport) out).readFrom(new NullInputStream(10), -1);
+                readFromSupport.readFrom(new NullInputStream(10), -1);
                 fail("Expected exception");
             } catch (IllegalStateException ex) {
                 // OK
diff --git 
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/input/XmlHandlerContentHandler.java
 
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/input/XmlHandlerContentHandler.java
index f903eabaf..6e50bcde8 100644
--- 
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/input/XmlHandlerContentHandler.java
+++ 
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/input/XmlHandlerContentHandler.java
@@ -79,8 +79,8 @@ public final class XmlHandlerContentHandler
 
     private static SAXException toSAXException(StreamException ex) {
         Throwable cause = ex.getCause();
-        if (cause instanceof SAXException) {
-            return (SAXException) cause;
+        if (cause instanceof SAXException saxException) {
+            return saxException;
         } else {
             return new SAXException(ex);
         }
diff --git 
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/output/ContentHandlerXmlHandler.java
 
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/output/ContentHandlerXmlHandler.java
index 3189ddac3..42718cc8e 100644
--- 
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/output/ContentHandlerXmlHandler.java
+++ 
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/output/ContentHandlerXmlHandler.java
@@ -223,14 +223,14 @@ public class ContentHandlerXmlHandler implements 
XmlHandler, CharacterDataSink {
                         writeToBuffer(data.toString());
                         contentHandler.ignorableWhitespace(buffer, 0, 
bufferPos);
                         bufferPos = 0;
-                    } else if (data instanceof CharacterData) {
+                    } else if (data instanceof CharacterData characterData) {
                         try {
-                            ((CharacterData) data).writeTo(this);
+                            characterData.writeTo(this);
                         } catch (IOException ex) {
                             Throwable cause = ex.getCause();
                             SAXException saxException;
-                            if (cause instanceof SAXException) {
-                                saxException = (SAXException) cause;
+                            if (cause instanceof SAXException se) {
+                                saxException = se;
                             } else {
                                 saxException = new SAXException(ex);
                             }
diff --git 
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java
 
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java
index b3f03fd7a..d42ce8b07 100644
--- 
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java
+++ 
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java
@@ -489,13 +489,13 @@ public final class Serializer implements XmlHandler, 
CharacterDataSink {
     @Override
     public void processCharacterData(Object data, boolean ignorable) throws 
StreamException {
         closeStartTag();
-        if (data instanceof CharacterData) {
+        if (data instanceof CharacterData characterData) {
             try {
-                ((CharacterData) data).writeTo(this);
+                characterData.writeTo(this);
             } catch (IOException ex) {
                 Throwable cause = ex.getCause();
-                if (cause instanceof StreamException) {
-                    throw (StreamException) cause;
+                if (cause instanceof StreamException streamException) {
+                    throw streamException;
                 } else {
                     throw new StreamException(ex);
                 }
diff --git 
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/StAXExceptionUtil.java
 
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/StAXExceptionUtil.java
index 4b3980e2f..26c392978 100644
--- 
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/StAXExceptionUtil.java
+++ 
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/StAXExceptionUtil.java
@@ -27,8 +27,8 @@ public final class StAXExceptionUtil {
 
     public static StreamException toStreamException(XMLStreamException ex) {
         Throwable cause = ex.getCause();
-        if (cause instanceof StreamException) {
-            return (StreamException) cause;
+        if (cause instanceof StreamException streamException) {
+            return streamException;
         } else {
             return new StreamException(ex);
         }
@@ -36,8 +36,8 @@ public final class StAXExceptionUtil {
 
     public static XMLStreamException toXMLStreamException(StreamException ex) {
         Throwable cause = ex.getCause();
-        if (cause instanceof XMLStreamException) {
-            return (XMLStreamException) cause;
+        if (cause instanceof XMLStreamException xmlStreamException) {
+            return xmlStreamException;
         } else {
             return new XMLStreamException(ex.getMessage(), ex);
         }
diff --git 
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/pull/input/StAXPullReader.java
 
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/pull/input/StAXPullReader.java
index 6564a0fc2..b45536203 100644
--- 
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/pull/input/StAXPullReader.java
+++ 
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/pull/input/StAXPullReader.java
@@ -290,8 +290,8 @@ final class StAXPullReader implements XmlReader {
                     log.warn(
                             "Attempt to access a parser that has thrown a 
parse exception before; "
                                     + "rethrowing the original exception.");
-                    if (parserException instanceof XMLStreamException) {
-                        throw (XMLStreamException) parserException;
+                    if (parserException instanceof XMLStreamException 
xmlStreamException) {
+                        throw xmlStreamException;
                     } else {
                         throw (RuntimeException) parserException;
                     }
diff --git 
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/push/input/XmlHandlerStreamWriter.java
 
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/push/input/XmlHandlerStreamWriter.java
index e7fe96e2b..b58a350eb 100644
--- 
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/push/input/XmlHandlerStreamWriter.java
+++ 
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/push/input/XmlHandlerStreamWriter.java
@@ -86,8 +86,8 @@ public final class XmlHandlerStreamWriter implements 
InternalXMLStreamWriter, Na
 
     private static XMLStreamException toXMLStreamException(StreamException ex) 
{
         Throwable cause = ex.getCause();
-        if (cause instanceof XMLStreamException) {
-            return (XMLStreamException) cause;
+        if (cause instanceof XMLStreamException xmlStreamException) {
+            return xmlStreamException;
         } else {
             return new XMLStreamException(ex);
         }
diff --git 
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/util/CharacterDataAccumulator.java
 
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/util/CharacterDataAccumulator.java
index 134e72d06..d3a42b1cc 100644
--- 
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/util/CharacterDataAccumulator.java
+++ 
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/util/CharacterDataAccumulator.java
@@ -28,19 +28,19 @@ public class CharacterDataAccumulator {
             content = data;
         } else {
             StringBuilder buffer;
-            if (content instanceof StringBuilder) {
-                buffer = (StringBuilder) content;
+            if (content instanceof StringBuilder stringBuilder) {
+                buffer = stringBuilder;
             } else {
-                if (content instanceof CharacterData) {
+                if (content instanceof CharacterData characterData) {
                     buffer = new StringBuilder();
-                    ((CharacterData) content).appendTo(buffer);
+                    characterData.appendTo(buffer);
                 } else {
                     buffer = new StringBuilder(content.toString());
                 }
                 content = buffer;
             }
-            if (data instanceof CharacterData) {
-                ((CharacterData) data).appendTo(buffer);
+            if (data instanceof CharacterData characterData) {
+                characterData.appendTo(buffer);
             } else {
                 buffer.append(data);
             }
diff --git a/components/io/src/main/java/org/apache/axiom/util/io/IOUtils.java 
b/components/io/src/main/java/org/apache/axiom/util/io/IOUtils.java
index 0f8cf4969..88142ee47 100644
--- a/components/io/src/main/java/org/apache/axiom/util/io/IOUtils.java
+++ b/components/io/src/main/java/org/apache/axiom/util/io/IOUtils.java
@@ -42,8 +42,8 @@ public final class IOUtils {
      */
     public static long copy(InputStream in, OutputStream out, long length)
             throws StreamCopyException {
-        if (out instanceof ReadFromSupport) {
-            return ((ReadFromSupport) out).readFrom(in, length);
+        if (out instanceof ReadFromSupport readFromSupport) {
+            return readFromSupport.readFrom(in, length);
         } else {
             byte[] buffer = new byte[4096];
             long read = 0;
diff --git 
a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/DOMStAXParserConfiguration.java
 
b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/DOMStAXParserConfiguration.java
index 505aa601d..1643585f6 100644
--- 
a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/DOMStAXParserConfiguration.java
+++ 
b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/DOMStAXParserConfiguration.java
@@ -52,8 +52,7 @@ final class DOMStAXParserConfiguration implements 
StAXParserConfiguration {
     public boolean equals(Object obj) {
         if (obj == this) {
             return true;
-        } else if (obj instanceof DOMStAXParserConfiguration) {
-            DOMStAXParserConfiguration other = (DOMStAXParserConfiguration) 
obj;
+        } else if (obj instanceof DOMStAXParserConfiguration other) {
             return other.coalescing == coalescing
                     && other.expandEntityReferences == expandEntityReferences;
         } else {
diff --git 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/ElementMatcher.java 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/ElementMatcher.java
index 18918e952..2716d3fb3 100644
--- a/mixins/core-mixins/src/main/java/org/apache/axiom/core/ElementMatcher.java
+++ b/mixins/core-mixins/src/main/java/org/apache/axiom/core/ElementMatcher.java
@@ -68,8 +68,8 @@ public interface ElementMatcher<T extends CoreElement> {
             new ElementMatcher<CoreElement>() {
                 @Override
                 public boolean matches(CoreElement element, String 
namespaceURI, String name) {
-                    if (element instanceof CoreNSUnawareElement) {
-                        return name.equals(((CoreNSUnawareElement) 
element).coreGetName());
+                    if (element instanceof CoreNSUnawareElement 
nsUnawareElement) {
+                        return name.equals(nsUnawareElement.coreGetName());
                     } else {
                         CoreNSAwareElement nsAwareElement = 
(CoreNSAwareElement) element;
                         String prefix = nsAwareElement.coreGetPrefix();
diff --git 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/NSAwareAttributeMatcher.java
 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/NSAwareAttributeMatcher.java
index 6801d1909..7f30f81dd 100644
--- 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/NSAwareAttributeMatcher.java
+++ 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/NSAwareAttributeMatcher.java
@@ -64,16 +64,15 @@ public final class NSAwareAttributeMatcher implements 
AttributeMatcher {
 
     @Override
     public boolean matches(CoreAttribute attr, String namespaceURI, String 
name) {
-        if (attr instanceof CoreNSAwareAttribute) {
-            CoreNSAwareAttribute nsAwareAttr = (CoreNSAwareAttribute) attr;
+        if (attr instanceof CoreNSAwareAttribute nsAwareAttr) {
             // Optimization: first compare the local names because they are in 
general
             // shorter and have higher "uniqueness"
             return name.equals(nsAwareAttr.coreGetLocalName())
                     && namespaceURI.equals(nsAwareAttr.coreGetNamespaceURI());
         } else if (matchNSUnawareAttributes
                 && namespaceURI.length() == 0
-                && attr instanceof CoreNSUnawareAttribute) {
-            return name.equals(((CoreNSUnawareAttribute) attr).coreGetName());
+                && attr instanceof CoreNSUnawareAttribute nsUnawareAttr) {
+            return name.equals(nsUnawareAttr.coreGetName());
         } else {
             return false;
         }
@@ -102,8 +101,8 @@ public final class NSAwareAttributeMatcher implements 
AttributeMatcher {
     @Override
     public void update(CoreAttribute attr, String prefix, String value) throws 
CoreModelException {
         attr.coreSetCharacterData(value, semantics);
-        if (updatePrefix && attr instanceof CoreNSAwareAttribute) {
-            ((CoreNSAwareAttribute) attr).coreSetPrefix(prefix);
+        if (updatePrefix && attr instanceof CoreNSAwareAttribute nsAwareAttr) {
+            nsAwareAttr.coreSetPrefix(prefix);
         }
     }
 }
diff --git 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/NamespaceDeclarationMatcher.java
 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/NamespaceDeclarationMatcher.java
index 38b6c8d6e..05e2bbb27 100644
--- 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/NamespaceDeclarationMatcher.java
+++ 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/NamespaceDeclarationMatcher.java
@@ -43,8 +43,8 @@ public final class NamespaceDeclarationMatcher implements 
AttributeMatcher {
 
     @Override
     public boolean matches(CoreAttribute attr, String namespaceURI, String 
name) {
-        if (attr instanceof CoreNamespaceDeclaration) {
-            String prefix = ((CoreNamespaceDeclaration) 
attr).coreGetDeclaredPrefix();
+        if (attr instanceof CoreNamespaceDeclaration namespaceDeclaration) {
+            String prefix = namespaceDeclaration.coreGetDeclaredPrefix();
             return name.equals(prefix);
         } else {
             return false;
diff --git 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/TreeWalkerImpl.java
 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/TreeWalkerImpl.java
index fe50f6aca..713f60165 100644
--- 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/TreeWalkerImpl.java
+++ 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/TreeWalkerImpl.java
@@ -125,8 +125,7 @@ public final class TreeWalkerImpl implements XmlReader {
                 }
             } else if (state == STATE_VISITED && previousNode == root) {
                 nextNode = null;
-            } else if (state == STATE_NOT_VISITED && previousNode instanceof 
CoreElement) {
-                final CoreElement element = (CoreElement) previousNode;
+            } else if (state == STATE_NOT_VISITED && previousNode instanceof 
CoreElement element) {
                 // TODO: handle case with preserve == false
                 CoreAttribute firstAttribute = element.coreGetFirstAttribute();
                 if (firstAttribute == null) {
@@ -169,8 +168,7 @@ public final class TreeWalkerImpl implements XmlReader {
             } else if (state == STATE_CONTENT_VISITED) {
                 nextNode = previousNode;
                 state = STATE_VISITED;
-            } else if (previousNode instanceof CoreChildNode) {
-                final CoreChildNode previousChildNode = (CoreChildNode) 
previousNode;
+            } else if (previousNode instanceof CoreChildNode 
previousChildNode) {
                 if (preserve) {
                     CoreChildNode sibling = 
previousChildNode.coreGetNextSibling();
                     if (sibling == null) {
@@ -224,9 +222,8 @@ public final class TreeWalkerImpl implements XmlReader {
             // More closely examine the case where we move to a node that has 
not
             // been visited yet. It may be a sourced element or a leaf node
             if (state == STATE_NOT_VISITED) {
-                if (nextNode instanceof CoreNSAwareElement) {
-                    XmlInput input =
-                            ((CoreNSAwareElement) 
nextNode).getXmlInput(preserve, incremental);
+                if (nextNode instanceof CoreNSAwareElement nsAwareElement) {
+                    XmlInput input = nsAwareElement.getXmlInput(preserve, 
incremental);
                     if (input != null) {
                         reader =
                                 input.createReader(
diff --git 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/builder/BuilderHandler.java
 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/builder/BuilderHandler.java
index 81172c9f8..dfea37b4b 100644
--- 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/builder/BuilderHandler.java
+++ 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/builder/BuilderHandler.java
@@ -75,8 +75,8 @@ final class BuilderHandler implements XmlHandler {
     }
 
     void nodeAdded(CoreNode node) {
-        if (node instanceof CoreDocument) {
-            document = (CoreDocument) node;
+        if (node instanceof CoreDocument doc) {
+            document = doc;
         }
         if (listeners != null) {
             for (int i = 0, size = listeners.size(); i < size; i++) {
diff --git 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreCharacterDataNodeMixin.java
 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreCharacterDataNodeMixin.java
index 0ecea2153..9580f8443 100644
--- 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreCharacterDataNodeMixin.java
+++ 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreCharacterDataNodeMixin.java
@@ -70,8 +70,8 @@ public abstract class CoreCharacterDataNodeMixin implements 
CoreCharacterDataNod
         CoreCharacterDataNode o = (CoreCharacterDataNode) other;
         Object otherData = o.coreGetCharacterData();
         data =
-                otherData instanceof CloneableCharacterData
-                        ? ((CloneableCharacterData) otherData).clone(policy, 
options)
+                otherData instanceof CloneableCharacterData 
cloneableCharacterData
+                        ? cloneableCharacterData.clone(policy, options)
                         : otherData;
         coreSetIgnorable(o.coreIsIgnorable());
     }
diff --git 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreNodeMixin.java
 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreNodeMixin.java
index 4bc6caa85..979d6775a 100644
--- 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreNodeMixin.java
+++ 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreNodeMixin.java
@@ -39,8 +39,8 @@ public abstract class CoreNodeMixin implements CoreNode {
     @Override
     public final CoreDocument coreGetOwnerDocument(boolean create) {
         CoreNode root = getRootOrOwnerDocument();
-        if (root instanceof CoreDocument) {
-            return (CoreDocument) root;
+        if (root instanceof CoreDocument document) {
+            return document;
         } else if (create) {
             CoreDocument ownerDocument = 
root.coreGetNodeFactory().getFactory2().createDocument();
             root.coreSetOwnerDocument(ownerDocument);
diff --git 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeMixin.java
 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeMixin.java
index a221ca2c6..8073fec94 100644
--- 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeMixin.java
+++ 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeMixin.java
@@ -291,8 +291,8 @@ public abstract class CoreParentNodeMixin implements 
CoreParentNode {
         }
         CoreChildNode child = coreGetFirstChildIfAvailable();
         while (child != null) {
-            if (child instanceof CoreParentNode) {
-                ((CoreParentNode) child).coreDiscard(consumeInput);
+            if (child instanceof CoreParentNode parentNode) {
+                parentNode.coreDiscard(consumeInput);
             }
             child = child.coreGetNextSiblingIfAvailable();
         }
@@ -319,8 +319,8 @@ public abstract class CoreParentNodeMixin implements 
CoreParentNode {
             boolean updateState;
             if (getState() == INCOMPLETE) {
                 CoreChildNode lastChild = coreGetLastKnownChild();
-                if (lastChild instanceof CoreParentNode) {
-                    ((CoreParentNode) lastChild).coreBuild();
+                if (lastChild instanceof CoreParentNode parentNode) {
+                    parentNode.coreBuild();
                 }
                 context.discard();
                 updateState = true;
diff --git 
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/DOMConfigurationImpl.java
 
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/DOMConfigurationImpl.java
index c0e4fd6d0..d39b9fc02 100644
--- 
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/DOMConfigurationImpl.java
+++ 
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/DOMConfigurationImpl.java
@@ -116,9 +116,9 @@ public final class DOMConfigurationImpl implements 
DOMConfiguration {
     public void setParameter(String name, Object value) throws DOMException {
         Integer mask = (Integer) paramMap.get(name);
         if (mask != null) {
-            if (value instanceof Boolean) {
+            if (value instanceof Boolean b) {
                 if ((mask.intValue() & FIXED_MASK) == 0) {
-                    if (((Boolean) value).booleanValue()) {
+                    if (b.booleanValue()) {
                         params |= mask.intValue();
                     } else {
                         params &= ~mask.intValue();
diff --git 
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentMixin.java
 
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentMixin.java
index 62c504c12..f79d0f10d 100644
--- 
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentMixin.java
+++ 
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentMixin.java
@@ -350,7 +350,7 @@ public abstract class DOMDocumentMixin implements 
DOMDocument {
     // TODO: need unit test to check that this method works as expected on an 
OMSourcedElement
     @Override
     public final Node renameNode(Node node, String namespaceURI, String 
qualifiedName) {
-        if (!(node instanceof DOMNode && ((DOMNode) 
node).coreHasSameOwnerDocument(this))) {
+        if (!(node instanceof DOMNode domNode && 
domNode.coreHasSameOwnerDocument(this))) {
             throw 
DOMExceptionUtil.newDOMException(DOMException.WRONG_DOCUMENT_ERR);
         }
         // TODO: what about an attempt to rename a namespace unaware node?
@@ -420,15 +420,14 @@ public abstract class DOMDocumentMixin implements 
DOMDocument {
 
     @Override
     public final Node adoptNode(Node node) throws DOMException {
-        if (node instanceof DOMNode) {
-            DOMNode childNode = (DOMNode) node;
-            if (childNode instanceof CoreChildNode) {
-                ((CoreChildNode) childNode).coreDetach(this);
+        if (node instanceof DOMNode childNode) {
+            if (childNode instanceof CoreChildNode coreChildNode) {
+                coreChildNode.coreDetach(this);
             } else {
                 childNode.coreSetOwnerDocument(this);
             }
-            if (node instanceof DOMAttribute) {
-                ((DOMAttribute) node).coreSetSpecified(true);
+            if (childNode instanceof DOMAttribute domAttribute) {
+                domAttribute.coreSetSpecified(true);
             }
             return childNode;
         } else {
diff --git 
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMElementMixin.java
 
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMElementMixin.java
index 70cd8ab09..b06920c11 100644
--- 
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMElementMixin.java
+++ 
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMElementMixin.java
@@ -192,10 +192,9 @@ public abstract class DOMElementMixin implements 
DOMElement {
 
     @Override
     public final Attr setAttributeNodeNS(Attr _newAttr) throws DOMException {
-        if (!(_newAttr instanceof DOMAttribute)) {
+        if (!(_newAttr instanceof DOMAttribute newAttr)) {
             throw 
DOMExceptionUtil.newDOMException(DOMException.WRONG_DOCUMENT_ERR);
         }
-        DOMAttribute newAttr = (DOMAttribute) _newAttr;
         CoreElement owner = newAttr.coreGetOwnerElement();
         if (owner == this) {
             // This means that the "new" attribute is already linked to the 
element
@@ -222,8 +221,7 @@ public abstract class DOMElementMixin implements DOMElement 
{
 
     @Override
     public final Attr removeAttributeNode(Attr oldAttr) throws DOMException {
-        if (oldAttr instanceof DOMAttribute) {
-            DOMAttribute attr = (DOMAttribute) oldAttr;
+        if (oldAttr instanceof DOMAttribute attr) {
             if (attr.coreGetOwnerElement() != this) {
                 throw 
DOMExceptionUtil.newDOMException(DOMException.NOT_FOUND_ERR);
             } else {
diff --git 
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeMixin.java
 
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeMixin.java
index 5fc199a9c..5aefa8b6d 100644
--- 
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeMixin.java
+++ 
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeMixin.java
@@ -115,8 +115,7 @@ public abstract class DOMParentNodeMixin implements 
DOMParentNode {
     }
 
     private void checkNewChild(Node newChild) {
-        if (newChild instanceof DOMNode) {
-            DOMNode newDomChild = (DOMNode) newChild;
+        if (newChild instanceof DOMNode newDomChild) {
             if (!coreHasSameOwnerDocument(newDomChild)) {
                 throw newDOMException(DOMException.WRONG_DOCUMENT_ERR);
             }
@@ -132,10 +131,10 @@ public abstract class DOMParentNodeMixin implements 
DOMParentNode {
     public final Node appendChild(Node newChild) {
         try {
             checkNewChild(newChild);
-            if (newChild instanceof CoreChildNode) {
-                coreAppendChild((CoreChildNode) newChild);
-            } else if (newChild instanceof CoreDocumentFragment) {
-                coreAppendChildren((CoreDocumentFragment) newChild);
+            if (newChild instanceof CoreChildNode childNode) {
+                coreAppendChild(childNode);
+            } else if (newChild instanceof CoreDocumentFragment 
documentFragment) {
+                coreAppendChildren(documentFragment);
             } else {
                 throw newDOMException(DOMException.HIERARCHY_REQUEST_ERR);
             }
@@ -152,16 +151,15 @@ public abstract class DOMParentNodeMixin implements 
DOMParentNode {
             if (refChild == null) {
                 return appendChild(newChild);
             } else {
-                if (!(refChild instanceof CoreChildNode
-                        && ((CoreChildNode) refChild).coreGetParent() == 
this)) {
+                if (!(refChild instanceof CoreChildNode childNode
+                        && childNode.coreGetParent() == this)) {
                     throw newDOMException(DOMException.NOT_FOUND_ERR);
                 }
                 checkNewChild(newChild);
-                if (newChild instanceof CoreChildNode) {
-                    ((CoreChildNode) 
refChild).coreInsertSiblingBefore((CoreChildNode) newChild);
-                } else if (newChild instanceof CoreDocumentFragment) {
-                    ((CoreChildNode) refChild)
-                            .coreInsertSiblingsBefore((CoreDocumentFragment) 
newChild);
+                if (newChild instanceof CoreChildNode newChildNode) {
+                    ((CoreChildNode) 
refChild).coreInsertSiblingBefore(newChildNode);
+                } else if (newChild instanceof CoreDocumentFragment 
documentFragment) {
+                    ((CoreChildNode) 
refChild).coreInsertSiblingsBefore(documentFragment);
                 } else {
                     throw newDOMException(DOMException.HIERARCHY_REQUEST_ERR);
                 }
@@ -175,23 +173,22 @@ public abstract class DOMParentNodeMixin implements 
DOMParentNode {
     @Override
     public final Node replaceChild(Node newChild, Node _oldChild) {
         try {
-            if (!(_oldChild instanceof CoreChildNode)) {
+            if (!(_oldChild instanceof CoreChildNode oldChild)) {
                 throw newDOMException(DOMException.NOT_FOUND_ERR);
             }
-            CoreChildNode oldChild = (CoreChildNode) _oldChild;
             if (oldChild.coreGetParent() != this) {
                 throw newDOMException(DOMException.NOT_FOUND_ERR);
             }
             checkNewChild(newChild);
-            if (newChild instanceof CoreChildNode) {
-                oldChild.coreReplaceWith(((CoreChildNode) newChild), 
DOMSemantics.INSTANCE);
-            } else if (newChild instanceof CoreDocumentFragment) {
+            if (newChild instanceof CoreChildNode childNode) {
+                oldChild.coreReplaceWith(childNode, DOMSemantics.INSTANCE);
+            } else if (newChild instanceof CoreDocumentFragment 
documentFragment) {
                 CoreChildNode nextSibling = oldChild.coreGetNextSibling();
                 oldChild.coreDetach(DOMSemantics.INSTANCE);
                 if (nextSibling == null) {
-                    coreAppendChildren((CoreDocumentFragment) newChild);
+                    coreAppendChildren(documentFragment);
                 } else {
-                    
nextSibling.coreInsertSiblingsBefore((CoreDocumentFragment) newChild);
+                    nextSibling.coreInsertSiblingsBefore(documentFragment);
                 }
             } else {
                 throw newDOMException(DOMException.HIERARCHY_REQUEST_ERR);
diff --git 
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMTextNodeMixin.java
 
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMTextNodeMixin.java
index 76faf52b8..6c2069d12 100644
--- 
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMTextNodeMixin.java
+++ 
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMTextNodeMixin.java
@@ -36,8 +36,8 @@ public abstract class DOMTextNodeMixin implements DOMTextNode 
{
         DOMTextNode first = this;
         while (true) {
             CoreChildNode sibling = first.coreGetPreviousSibling();
-            if (sibling instanceof DOMTextNode) {
-                first = (DOMTextNode) sibling;
+            if (sibling instanceof DOMTextNode textNode) {
+                first = textNode;
             } else {
                 break;
             }
@@ -50,8 +50,8 @@ public abstract class DOMTextNodeMixin implements DOMTextNode 
{
             DOMTextNode last = this;
             while (true) {
                 CoreChildNode sibling = last.coreGetNextSibling();
-                if (sibling instanceof DOMTextNode) {
-                    last = (DOMTextNode) sibling;
+                if (sibling instanceof DOMTextNode textNode) {
+                    last = textNode;
                 } else {
                     break;
                 }
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/AxiomExceptionTranslator.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/AxiomExceptionTranslator.java
index 9f700e972..a8baaa5c6 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/AxiomExceptionTranslator.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/AxiomExceptionTranslator.java
@@ -33,9 +33,9 @@ public class AxiomExceptionTranslator {
     public static OMException translate(CoreModelException ex) {
         if (ex instanceof NodeConsumedException) {
             return new NodeUnavailableException();
-        } else if (ex instanceof DeferredParsingException) {
+        } else if (ex instanceof DeferredParsingException 
deferredParsingException) {
             throw new org.apache.axiom.om.DeferredParsingException(
-                    ((DeferredParsingException) ex).getStreamException());
+                    deferredParsingException.getStreamException());
         } else {
             return new OMException(ex);
         }
@@ -43,8 +43,8 @@ public class AxiomExceptionTranslator {
 
     public static XMLStreamException toXMLStreamException(StreamException ex) {
         Throwable cause = ex.getCause();
-        if (cause instanceof XMLStreamException) {
-            return (XMLStreamException) cause;
+        if (cause instanceof XMLStreamException xmlStreamException) {
+            return xmlStreamException;
         } else {
             return new XMLStreamException(ex);
         }
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/AxiomSemantics.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/AxiomSemantics.java
index 16998c2f3..82ce56bd7 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/AxiomSemantics.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/AxiomSemantics.java
@@ -94,9 +94,8 @@ public final class AxiomSemantics implements Semantics {
 
                 @Override
                 public void postProcess(OMCloneOptions options, CoreNode 
clone) {
-                    if (clone instanceof AxiomElement && ((AxiomElement) 
clone).isExpanded()) {
+                    if (clone instanceof AxiomElement element && 
element.isExpanded()) {
                         // Repair namespaces
-                        AxiomElement element = (AxiomElement) clone;
                         NSUtil.handleNamespace(element, 
element.getNamespace(), false, true);
                         CoreAttribute attr = element.coreGetFirstAttribute();
                         while (attr != null) {
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/DeferredNamespace.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/DeferredNamespace.java
index 2c3ab33b0..a109b58fa 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/DeferredNamespace.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/DeferredNamespace.java
@@ -65,10 +65,9 @@ public final class DeferredNamespace implements OMNamespace {
 
     @Override
     public boolean equals(Object obj) {
-        if (!(obj instanceof OMNamespace)) {
+        if (!(obj instanceof OMNamespace other)) {
             return false;
         }
-        OMNamespace other = (OMNamespace) obj;
         String otherPrefix = other.getPrefix();
         String thisPrefix = getPrefix();
         return (uri.equals(other.getNamespaceURI())
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/NamespaceIterator.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/NamespaceIterator.java
index 93920b5d1..e13e36eb5 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/NamespaceIterator.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/NamespaceIterator.java
@@ -61,8 +61,8 @@ public final class NamespaceIterator implements 
Iterator<OMNamespace> {
                 } else {
                     declaredNamespaces = null;
                     OMContainer parent = element.getParent();
-                    if (parent instanceof OMElement) {
-                        element = (OMElement) parent;
+                    if (parent instanceof OMElement omElement) {
+                        element = omElement;
                     } else {
                         next = null;
                         break;
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/OMNamespaceImpl.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/OMNamespaceImpl.java
index 009bfc200..9012300ad 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/OMNamespaceImpl.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/OMNamespaceImpl.java
@@ -57,8 +57,7 @@ public class OMNamespaceImpl implements OMNamespace {
 
     @Override
     public boolean equals(Object obj) {
-        if (!(obj instanceof OMNamespace)) return false;
-        OMNamespace other = (OMNamespace) obj;
+        if (!(obj instanceof OMNamespace other)) return false;
         String otherPrefix = other.getPrefix();
         return (uri.equals(other.getNamespaceURI())
                 && (prefix == null ? otherPrefix == null : 
prefix.equals(otherPrefix)));
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/builder/CustomBuilderManager.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/builder/CustomBuilderManager.java
index fdab087e4..2e171b733 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/builder/CustomBuilderManager.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/builder/CustomBuilderManager.java
@@ -79,9 +79,9 @@ final class CustomBuilderManager implements BuilderListener {
     private DeferredAction getAction(CoreNode node, int depth, int 
firstCustomBuilder) {
         lastCandidateElement = null;
         lastCandidateDepth = -1;
-        if (node instanceof AxiomElement
-                && (node instanceof AxiomSOAPHeaderBlock || !(node instanceof 
AxiomSOAPElement))) {
-            AxiomElement element = (AxiomElement) node;
+        if (node instanceof AxiomElement element
+                && (element instanceof AxiomSOAPHeaderBlock
+                        || !(element instanceof AxiomSOAPElement))) {
             if (registrations != null) {
                 for (int i = firstCustomBuilder; i < registrations.size(); 
i++) {
                     CustomBuilderRegistration registration = 
registrations.get(i);
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 ce7fffc89..86748d2e0 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
@@ -475,16 +475,15 @@ public class OMFactoryImpl implements OMFactory {
 
     @Override
     public final OMInformationItem importInformationItem(OMInformationItem 
node) {
-        if (node instanceof OMNode) {
-            return importChildNode((OMNode) node);
-        } else if (node instanceof OMDocument) {
-            OMDocument document = (OMDocument) node;
+        if (node instanceof OMNode omNode) {
+            return importChildNode(omNode);
+        } else if (node instanceof OMDocument document) {
             AxiomDocument importedDocument = nodeFactory.createDocument();
             // TODO: other attributes
             importChildren(document, importedDocument);
             return importedDocument;
-        } else if (node instanceof OMAttribute) {
-            return importAttribute((OMAttribute) node);
+        } else if (node instanceof OMAttribute attribute) {
+            return importAttribute(attribute);
         } else {
             throw new IllegalArgumentException("Unsupported node type");
         }
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 69ae426b2..cb23db9b3 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
@@ -70,13 +70,12 @@ public abstract class BuilderFactory<T extends 
OMXMLParserWrapper> {
 
                                 @Override
                                 public DeferredAction nodeAdded(CoreNode node, 
int depth) {
-                                    if (node instanceof AxiomSOAPMessage) {
-                                        message = (AxiomSOAPMessage) node;
+                                    if (node instanceof AxiomSOAPMessage m) {
+                                        message = m;
                                     } else if (message != null
-                                            && node instanceof 
AxiomSOAPEnvelope) {
+                                            && node instanceof 
AxiomSOAPEnvelope envelope) {
                                         message.initSOAPFactory(
-                                                (SOAPFactory)
-                                                        ((AxiomSOAPEnvelope) 
node).getOMFactory());
+                                                (SOAPFactory) 
envelope.getOMFactory());
                                     }
                                     return null;
                                 }
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 819aaa5e6..fadc54d9e 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
@@ -156,20 +156,19 @@ public final class BuilderSpec {
     }
 
     public static BuilderSpec from(StAXParserConfiguration configuration, 
Source source) {
-        if (source instanceof SAXSource) {
-            return from((SAXSource) source, true);
-        } else if (source instanceof DOMSource) {
-            return from(((DOMSource) source).getNode(), true);
-        } else if (source instanceof StreamSource) {
-            StreamSource streamSource = (StreamSource) source;
+        if (source instanceof SAXSource saxSource) {
+            return from(saxSource, true);
+        } else if (source instanceof DOMSource domSource) {
+            return from(domSource.getNode(), true);
+        } else if (source instanceof StreamSource streamSource) {
             InputSource is = new InputSource();
             is.setByteStream(streamSource.getInputStream());
             is.setCharacterStream(streamSource.getReader());
             is.setPublicId(streamSource.getPublicId());
             is.setSystemId(streamSource.getSystemId());
             return from(configuration, is);
-        } else if (source instanceof StAXSource) {
-            return from(((StAXSource) source).getXMLStreamReader());
+        } else if (source instanceof StAXSource staxSource) {
+            return from(staxSource.getXMLStreamReader());
         } else {
             try {
                 return new BuilderSpec(
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/util/OMDataSourceUtil.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/util/OMDataSourceUtil.java
index 189b10eb5..a6af8aa0f 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/util/OMDataSourceUtil.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/util/OMDataSourceUtil.java
@@ -39,16 +39,16 @@ public final class OMDataSourceUtil {
     }
 
     public static boolean isDestructiveWrite(OMDataSource dataSource) {
-        if (dataSource instanceof OMDataSourceExt) {
-            return ((OMDataSourceExt) dataSource).isDestructiveWrite();
+        if (dataSource instanceof OMDataSourceExt dataSourceExt) {
+            return dataSourceExt.isDestructiveWrite();
         } else {
             return true;
         }
     }
 
     public static boolean isDestructiveRead(OMDataSource dataSource) {
-        if (dataSource instanceof OMDataSourceExt) {
-            return ((OMDataSourceExt) dataSource).isDestructiveRead();
+        if (dataSource instanceof OMDataSourceExt dataSourceExt) {
+            return dataSourceExt.isDestructiveRead();
         } else {
             return false;
         }
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/TextContent.java 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/TextContent.java
index 7c9668bef..88a7b31be 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/TextContent.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/intf/TextContent.java
@@ -124,9 +124,9 @@ public final class TextContent implements 
CloneableCharacterData {
      */
     public Blob getBlob() {
         Object blobObject = getBlobObject();
-        if (blobObject instanceof BlobProvider) {
+        if (blobObject instanceof BlobProvider blobProvider) {
             try {
-                return ((BlobProvider) blobObject).getBlob();
+                return blobProvider.getBlob();
             } catch (IOException ex) {
                 throw new OMException(ex);
             }
@@ -162,14 +162,14 @@ public final class TextContent implements 
CloneableCharacterData {
     @Override
     public <T> CharacterData clone(ClonePolicy<T> policy, T options) {
         if (binary
-                && options instanceof OMCloneOptions
-                && ((OMCloneOptions) options).isFetchBlobs()) {
+                && options instanceof OMCloneOptions omCloneOptions
+                && omCloneOptions.isFetchBlobs()) {
             // This will fetch the Blob from the BlobProvider if applicable.
             Blob blob = getBlob();
             // If the blob refers to a MIME part of an XOP encoded message, 
ensure that the part is
             // fetched.
-            if (blob instanceof PartBlob) {
-                ((PartBlob) blob).getPart().fetch();
+            if (blob instanceof PartBlob partBlob) {
+                partBlob.getPart().fetch();
             }
         }
         return new TextContent(this);
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomChildNodeMixin.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomChildNodeMixin.java
index bce67d684..9a4812126 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomChildNodeMixin.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomChildNodeMixin.java
@@ -34,7 +34,7 @@ public abstract class AxiomChildNodeMixin implements 
AxiomChildNode {
     @Override
     public final OMContainer getParent() {
         CoreParentNode parent = coreGetParent();
-        return parent instanceof OMContainer ? (OMContainer) parent : null;
+        return parent instanceof OMContainer container ? container : null;
     }
 
     @Override
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerMixin.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerMixin.java
index 86b6240a7..3f9e44d7a 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerMixin.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerMixin.java
@@ -312,8 +312,8 @@ public abstract class AxiomContainerMixin implements 
AxiomContainer {
             serialize(handler, namespaceContextProvider, format, cache);
         } catch (StreamException ex) {
             Throwable cause = ex.getCause();
-            if (cause instanceof IOException) {
-                throw (IOException) cause;
+            if (cause instanceof IOException ioException) {
+                throw ioException;
             } else {
                 throw new OMException(ex);
             }
@@ -383,10 +383,10 @@ public abstract class AxiomContainerMixin implements 
AxiomContainer {
             rootPartOutputStream.close();
             for (String contentID : encoder.getContentIDs()) {
                 Blob blob = encoder.getBlob(contentID);
-                if (cache || !(blob instanceof PartBlob)) {
-                    multipartWriter.writePart(blob, contentID);
+                if (!cache && blob instanceof PartBlob partBlob) {
+                    multipartWriter.writePart(partBlob, contentID, false);
                 } else {
-                    multipartWriter.writePart((PartBlob) blob, contentID, 
false);
+                    multipartWriter.writePart(blob, contentID);
                 }
             }
             multipartWriter.complete();
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocumentMixin.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocumentMixin.java
index bf010f077..7a4f45310 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocumentMixin.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocumentMixin.java
@@ -112,11 +112,11 @@ public abstract class AxiomDocumentMixin implements 
AxiomDocument {
 
     @Override
     public final void checkChild(OMNode child) {
-        if (child instanceof OMElement) {
+        if (child instanceof OMElement element) {
             if (getOMDocumentElement() != null) {
                 throw new OMException("Document element already exists");
             } else {
-                checkDocumentElement((OMElement) child);
+                checkDocumentElement(element);
             }
         }
     }
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementMixin.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementMixin.java
index 826a51065..d8331a7fd 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementMixin.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementMixin.java
@@ -187,7 +187,7 @@ public abstract class AxiomElementMixin implements 
AxiomElement {
             if (child == null) {
                 return new StringReader("");
             } else if (child.getNextOMSibling() == null) {
-                return new StringReader(child instanceof OMText ? ((OMText) 
child).getText() : "");
+                return new StringReader(child instanceof OMText text ? 
text.getText() : "");
             }
         }
         // In all other cases, extract the data from the XMLStreamReader
@@ -473,8 +473,7 @@ public abstract class AxiomElementMixin implements 
AxiomElement {
                         && elementNamespace.getPrefix().length() == 0
                         && !elementNamespace.getNamespaceURI().equals(uri)) {
             throw new OMException(
-                    "Attempt to add a namespace declaration that conflicts 
with "
-                            + "the namespace information of the element");
+                    "Attempt to add a namespace declaration that conflicts 
with the namespace information of the element");
         }
         OMNamespace namespace = new OMNamespaceImpl(uri == null ? "" : uri, 
"");
         addNamespaceDeclaration(namespace);
@@ -501,8 +500,8 @@ public abstract class AxiomElementMixin implements 
AxiomElement {
             // For the OMDocumentImpl there won't be any explicit namespace
             // declarations, so going up the parent chain till the document
             // element should be enough.
-            if (parent instanceof OMElement) {
-                namespace = ((OMElement) parent).findNamespace(uri, prefix);
+            if (parent instanceof OMElement element) {
+                namespace = element.findNamespace(uri, prefix);
                 // If the prefix has been redeclared, then ignore the binding 
found on the ancestors
                 if (namespace != null
                         && findDeclaredNamespace(null, namespace.getPrefix()) 
!= null) {
@@ -567,9 +566,9 @@ public abstract class AxiomElementMixin implements 
AxiomElement {
             attr = attr.coreGetNextAttribute();
         }
         OMContainer parent = getParent();
-        if (parent instanceof OMElement) {
+        if (parent instanceof OMElement element) {
             // try with the parent
-            return ((OMElement) parent).findNamespaceURI(prefix);
+            return element.findNamespaceURI(prefix);
         } else {
             return null;
         }
@@ -636,7 +635,7 @@ public abstract class AxiomElementMixin implements 
AxiomElement {
     @Override
     public final CoreElement getContextElement() {
         CoreParentNode parent = coreGetParent();
-        return parent instanceof CoreElement ? (CoreElement) parent : null;
+        return parent instanceof CoreElement element ? element : null;
     }
 
     @Override
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementMixin.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementMixin.java
index 729e8ae9d..864e85cc8 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementMixin.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementMixin.java
@@ -415,31 +415,31 @@ public abstract class AxiomSourcedElementMixin implements 
AxiomSourcedElement {
         // If already expanded or this is not an OMDataSourceExt, then
         // create a copy of the OM Tree
         OMDataSource ds = o.getDataSource();
-        if (!(options instanceof OMCloneOptions)
-                || !((OMCloneOptions) options).isCopyOMDataSources()
-                || ds == null
-                || o.isExpanded()
-                || !(ds instanceof OMDataSourceExt)) {
-            return;
-        }
-
-        // If copying is destructive, then copy the OM tree
-        OMDataSourceExt sourceDS = (OMDataSourceExt) ds;
-        if (sourceDS.isDestructiveRead() || sourceDS.isDestructiveWrite()) {
-            return;
-        }
-        OMDataSourceExt targetDS = ((OMDataSourceExt) ds).copy();
-        if (targetDS == null) {
-            return;
-        }
-        // Otherwise create a target OMSE with the copied DataSource
-        init(targetDS);
-        definedNamespaceSet = o.internalIsDefinedNamespaceSet();
-        OMNamespace otherDefinedNamespace = o.internalGetDefinedNamespace();
-        if (otherDefinedNamespace instanceof DeferredNamespace) {
-            definedNamespace = new DeferredNamespace(this, 
otherDefinedNamespace.getNamespaceURI());
+        if (options instanceof OMCloneOptions omCloneOptions
+                && omCloneOptions.isCopyOMDataSources()
+                && ds != null
+                && !o.isExpanded()
+                && ds instanceof OMDataSourceExt sourceDS) {
+            // If copying is destructive, then copy the OM tree
+            if (sourceDS.isDestructiveRead() || sourceDS.isDestructiveWrite()) 
{
+                return;
+            }
+            OMDataSourceExt targetDS = sourceDS.copy();
+            if (targetDS == null) {
+                return;
+            }
+            // Otherwise create a target OMSE with the copied DataSource
+            init(targetDS);
+            definedNamespaceSet = o.internalIsDefinedNamespaceSet();
+            OMNamespace otherDefinedNamespace = 
o.internalGetDefinedNamespace();
+            if (otherDefinedNamespace instanceof DeferredNamespace) {
+                definedNamespace =
+                        new DeferredNamespace(this, 
otherDefinedNamespace.getNamespaceURI());
+            } else {
+                definedNamespace = otherDefinedNamespace;
+            }
         } else {
-            definedNamespace = otherDefinedNamespace;
+            return;
         }
     }
 
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomTextMixin.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomTextMixin.java
index ea3255252..c101c98de 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomTextMixin.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomTextMixin.java
@@ -38,8 +38,8 @@ public abstract class AxiomTextMixin implements AxiomText {
     private TextContent getTextContent(boolean force) {
         try {
             Object content = coreGetCharacterData();
-            if (content instanceof TextContent) {
-                return (TextContent) content;
+            if (content instanceof TextContent textContent) {
+                return textContent;
             } else if (force) {
                 TextContent textContent = new TextContent((String) content);
                 coreSetCharacterData(textContent, AxiomSemantics.INSTANCE);
@@ -93,8 +93,8 @@ public abstract class AxiomTextMixin implements AxiomText {
     public final char[] getTextCharacters() {
         try {
             Object content = coreGetCharacterData();
-            if (content instanceof TextContent) {
-                return ((TextContent) content).toCharArray();
+            if (content instanceof TextContent textContent) {
+                return textContent.toCharArray();
             } else {
                 return ((String) content).toCharArray();
             }
@@ -131,8 +131,8 @@ public abstract class AxiomTextMixin implements AxiomText {
     public final Blob getBlob() {
         try {
             Object content = coreGetCharacterData();
-            if (content instanceof TextContent) {
-                return ((TextContent) content).getBlob();
+            if (content instanceof TextContent textContent) {
+                return textContent.getBlob();
             } else {
                 throw new OMException("No DataHandler available");
             }
@@ -150,8 +150,8 @@ public abstract class AxiomTextMixin implements AxiomText {
     public final void buildWithAttachments() {
         if (isOptimized()) {
             Blob blob = getBlob();
-            if (blob instanceof PartBlob) {
-                ((PartBlob) blob).getPart().fetch();
+            if (blob instanceof PartBlob partBlob) {
+                partBlob.getPart().fetch();
             }
         }
     }
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/NamespaceContextPreservationFilterHandler.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/NamespaceContextPreservationFilterHandler.java
index e40fe0f26..cbce7cd39 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/NamespaceContextPreservationFilterHandler.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/NamespaceContextPreservationFilterHandler.java
@@ -81,10 +81,11 @@ public final class 
NamespaceContextPreservationFilterHandler extends XmlHandlerW
                         attr = attr.coreGetNextAttribute();
                     }
                     CoreParentNode parent = current.coreGetParent();
-                    if (!(parent instanceof CoreElement)) {
+                    if (parent instanceof CoreElement element) {
+                        current = element;
+                    } else {
                         break;
                     }
-                    current = (CoreElement) parent;
                 }
                 prefixesAlreadyBound = null;
                 done = true;
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/ds/PushOMDataSourceReader.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/ds/PushOMDataSourceReader.java
index e25b0e04f..ae131334d 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/ds/PushOMDataSourceReader.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/ds/PushOMDataSourceReader.java
@@ -73,9 +73,8 @@ final class PushOMDataSourceReader implements XmlReader {
                             handler, null, 
AxiomXMLStreamWriterExtensionFactory.INSTANCE);
             // Seed the namespace context with the namespace context from the 
parent
             OMContainer parent = root.getParent();
-            if (parent instanceof OMElement) {
-                for (Iterator<OMNamespace> it = ((OMElement) 
parent).getNamespacesInScope();
-                        it.hasNext(); ) {
+            if (parent instanceof OMElement element) {
+                for (Iterator<OMNamespace> it = 
element.getNamespacesInScope(); it.hasNext(); ) {
                     OMNamespace ns = it.next();
                     writer.setPrefix(ns.getPrefix(), ns.getNamespaceURI());
                 }
@@ -86,8 +85,8 @@ final class PushOMDataSourceReader implements XmlReader {
             handler.completed();
         } catch (XMLStreamException ex) {
             Throwable cause = ex.getCause();
-            if (cause instanceof StreamException) {
-                throw (StreamException) cause;
+            if (cause instanceof StreamException streamException) {
+                throw streamException;
             } else {
                 throw new StreamException(ex);
             }
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/sax/XMLReaderImpl.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/sax/XMLReaderImpl.java
index 07f889519..779491e56 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/sax/XMLReaderImpl.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/sax/XMLReaderImpl.java
@@ -62,10 +62,10 @@ public class XMLReaderImpl extends AbstractXMLReader {
             throw new SAXException(ex);
         } catch (StreamException ex) {
             Throwable cause = ex.getCause();
-            if (cause instanceof SAXException) {
-                throw (SAXException) cause;
-            } else if (cause instanceof Exception) {
-                throw new SAXException((Exception) cause);
+            if (cause instanceof SAXException saxException) {
+                throw saxException;
+            } else if (cause instanceof Exception exception) {
+                throw new SAXException(exception);
             } else {
                 throw new SAXException(ex);
             }
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/pull/BlobReaderImpl.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/pull/BlobReaderImpl.java
index a4c0735b9..e36198dd5 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/pull/BlobReaderImpl.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/pull/BlobReaderImpl.java
@@ -38,7 +38,7 @@ final class BlobReaderImpl implements BlobReader {
     public boolean isBinary() {
         if (reader.getEventType() == XMLStreamReader.CHARACTERS) {
             Object data = reader.getCharacterData();
-            return data instanceof TextContent && ((TextContent) 
data).isBinary();
+            return data instanceof TextContent textContent && 
textContent.isBinary();
         } else {
             return false;
         }
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/pull/CharacterDataReaderImpl.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/pull/CharacterDataReaderImpl.java
index ccff5f2cd..c1ec323ca 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/pull/CharacterDataReaderImpl.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/pull/CharacterDataReaderImpl.java
@@ -43,21 +43,20 @@ final class CharacterDataReaderImpl implements 
CharacterDataReader {
         switch (reader.getEventType()) {
             case XMLStreamReader.CHARACTERS -> {
                 Object data = reader.getCharacterData();
-                if (data instanceof CharacterData) {
-                    ((CharacterData) data)
-                            .writeTo(
-                                    new CharacterDataSink() {
-                                        @Override
-                                        public Writer getWriter() {
-                                            return writer;
-                                        }
+                if (data instanceof CharacterData characterData) {
+                    characterData.writeTo(
+                            new CharacterDataSink() {
+                                @Override
+                                public Writer getWriter() {
+                                    return writer;
+                                }
 
-                                        @Override
-                                        public 
AbstractBase64EncodingOutputStream
-                                                
getBase64EncodingOutputStream() {
-                                            return new 
Base64EncodingWriterOutputStream(writer);
-                                        }
-                                    });
+                                @Override
+                                public AbstractBase64EncodingOutputStream
+                                        getBase64EncodingOutputStream() {
+                                    return new 
Base64EncodingWriterOutputStream(writer);
+                                }
+                            });
                 } else {
                     writer.write(data.toString());
                 }
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/push/XMLStreamWriterHandler.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/push/XMLStreamWriterHandler.java
index d0075de67..8caf7d813 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/push/XMLStreamWriterHandler.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/push/XMLStreamWriterHandler.java
@@ -160,14 +160,13 @@ public class XMLStreamWriterHandler implements XmlHandler 
{
             return;
         }
         try {
-            if (data instanceof TextContent) {
-                TextContent textContent = (TextContent) data;
+            if (data instanceof TextContent textContent) {
                 if (textContent.isBinary()) {
                     Object blobObject = textContent.getBlobObject();
-                    if (blobObject instanceof BlobProvider) {
+                    if (blobObject instanceof BlobProvider blobProvider) {
                         getBlobWriter()
                                 .writeBlob(
-                                        (BlobProvider) blobObject,
+                                        blobProvider,
                                         textContent.getContentID(),
                                         textContent.isOptimize());
                     } else {
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPEncodingFilterHandler.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPEncodingFilterHandler.java
index 8d42f9064..2c5ff9d94 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPEncodingFilterHandler.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPEncodingFilterHandler.java
@@ -82,8 +82,8 @@ public final class XOPEncodingFilterHandler extends 
AbstractXOPEncodingFilterHan
         Object blobObject = blobObjects.get(contentID);
         if (blobObject == null) {
             return null;
-        } else if (blobObject instanceof Blob) {
-            return (Blob) blobObject;
+        } else if (blobObject instanceof Blob blob) {
+            return blob;
         } else {
             try {
                 return ((BlobProvider) blobObject).getBlob();
@@ -95,20 +95,19 @@ public final class XOPEncodingFilterHandler extends 
AbstractXOPEncodingFilterHan
 
     @Override
     protected String processCharacterData(Object data) throws StreamException {
-        if (data instanceof TextContent) {
-            TextContent textContent = (TextContent) data;
+        if (data instanceof TextContent textContent) {
             if (textContent.isBinary()) {
                 Object blobObject = textContent.getBlobObject();
                 boolean optimize;
                 try {
-                    if (blobObject instanceof BlobProvider) {
+                    if (blobObject instanceof BlobProvider blobProvider) {
                         optimize =
                                 optimizationPolicy.isOptimized(
-                                        (BlobProvider) blobObject, 
textContent.isOptimize());
+                                        blobProvider, 
textContent.isOptimize());
+                    } else if (blobObject instanceof Blob blob) {
+                        optimize = optimizationPolicy.isOptimized(blob, 
textContent.isOptimize());
                     } else {
-                        optimize =
-                                optimizationPolicy.isOptimized(
-                                        (Blob) blobObject, 
textContent.isOptimize());
+                        optimize = false;
                     }
                 } catch (IOException ex) {
                     throw new StreamException(ex);
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/common/SOAPHeaderBlockHelper.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/common/SOAPHeaderBlockHelper.java
index 7e614babb..d870f6409 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/common/SOAPHeaderBlockHelper.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/common/SOAPHeaderBlockHelper.java
@@ -34,13 +34,10 @@ public final class SOAPHeaderBlockHelper {
     public static String getAttributeValue(AxiomElement block, String key, 
QName qname) {
         // First, try getting the information from the property.
         // Fallback to getting the information from the attribute.
-        if (block instanceof OMSourcedElement && !block.isExpanded()) {
-            OMDataSource ds = ((OMSourcedElement) block).getDataSource();
-            if (ds instanceof OMDataSourceExt) {
-                OMDataSourceExt dsExt = (OMDataSourceExt) ds;
-                if (dsExt.hasProperty(key)) {
-                    return (String) dsExt.getProperty(key);
-                }
+        if (block instanceof OMSourcedElement sourcedElement && 
!block.isExpanded()) {
+            OMDataSource ds = sourcedElement.getDataSource();
+            if (ds instanceof OMDataSourceExt dsExt && dsExt.hasProperty(key)) 
{
+                return (String) dsExt.getProperty(key);
             }
         }
         return block.getAttributeValue(qname);
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/common/SOAPHeaderBlockMapper.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/common/SOAPHeaderBlockMapper.java
index abab9faa3..48ff2f17e 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/common/SOAPHeaderBlockMapper.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/common/SOAPHeaderBlockMapper.java
@@ -33,8 +33,8 @@ public final class SOAPHeaderBlockMapper implements 
Mapper<SOAPHeaderBlock, Axio
 
     @Override
     public SOAPHeaderBlock map(AxiomElement element) {
-        if (element instanceof SOAPHeaderBlock) {
-            return (SOAPHeaderBlock) element;
+        if (element instanceof SOAPHeaderBlock soapHeaderBlock) {
+            return soapHeaderBlock;
         } else {
             try {
                 AxiomSOAPHeaderBlock newElement =
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAP11BuilderHelper.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAP11BuilderHelper.java
index b344be995..8bcd489a8 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAP11BuilderHelper.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAP11BuilderHelper.java
@@ -58,8 +58,8 @@ public class SOAP11BuilderHelper extends SOAPBuilderHelper 
implements SOAP11Cons
         } else if (elementLevel == 5) {
 
             String parentTagName = "";
-            if (parent instanceof Element) {
-                parentTagName = ((Element) parent).getTagName();
+            if (parent instanceof Element element) {
+                parentTagName = element.getTagName();
             } else {
                 parentTagName = parent.getLocalName();
             }
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPBodyMixin.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPBodyMixin.java
index 908f67a54..483594261 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPBodyMixin.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPBodyMixin.java
@@ -59,7 +59,7 @@ public abstract class AxiomSOAPBodyMixin implements 
AxiomSOAPBody {
     @Override
     public final SOAPFault getFault() {
         OMElement element = getFirstElement();
-        return element instanceof SOAPFault ? (SOAPFault) element : null;
+        return element instanceof SOAPFault soapFault ? soapFault : null;
     }
 
     @Override
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPElementMixin.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPElementMixin.java
index 7a040e343..bdd2d4875 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPElementMixin.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPElementMixin.java
@@ -35,15 +35,15 @@ public abstract class AxiomSOAPElementMixin implements 
AxiomSOAPElement {
 
     @Override
     public final void checkChild(OMNode child) {
-        if (child instanceof OMElement && !isChildElementAllowed((OMElement) 
child)) {
+        if (child instanceof OMElement element && 
!isChildElementAllowed(element)) {
             throw new SOAPProcessingException(
                     child.getClass().getName()
                             + " is not allowed as a child of "
                             + getClass().getName());
         }
-        if (child instanceof AxiomSOAPElement) {
+        if (child instanceof AxiomSOAPElement soapElement) {
             SOAPHelper soapHelper = getSOAPHelper();
-            SOAPHelper childSOAPHelper = ((AxiomSOAPElement) 
child).getSOAPHelper();
+            SOAPHelper childSOAPHelper = soapElement.getSOAPHelper();
             if (childSOAPHelper != soapHelper) {
                 throw new SOAPProcessingException(
                         "Cannot add a "
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPEnvelopeMixin.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPEnvelopeMixin.java
index 594b2190c..8514d0550 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPEnvelopeMixin.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPEnvelopeMixin.java
@@ -39,7 +39,7 @@ public abstract class AxiomSOAPEnvelopeMixin implements 
AxiomSOAPEnvelope {
     public final SOAPHeader getHeader() {
         // The soap header is the first element in the envelope.
         OMElement e = getFirstElement();
-        return e instanceof SOAPHeader ? (SOAPHeader) e : null;
+        return e instanceof SOAPHeader soapHeader ? soapHeader : null;
     }
 
     @Override
@@ -51,15 +51,15 @@ public abstract class AxiomSOAPEnvelopeMixin implements 
AxiomSOAPEnvelope {
     @Override
     public final SOAPBody getBody() {
         OMElement element = getFirstElement();
-        if (element instanceof SOAPBody) {
-            return (SOAPBody) element;
+        if (element instanceof SOAPBody soapBody) {
+            return soapBody;
         } else if (element instanceof SOAPHeader) {
             OMNode node = element.getNextOMSibling();
             while (node != null && !(node instanceof OMElement)) {
                 node = node.getNextOMSibling();
             }
-            if (node instanceof SOAPBody) {
-                return (SOAPBody) node;
+            if (node instanceof SOAPBody soapBody) {
+                return soapBody;
             }
         }
         return null;
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPHeaderBlockMixin.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPHeaderBlockMixin.java
index 7fd6f45ad..698f83b83 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPHeaderBlockMixin.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPHeaderBlockMixin.java
@@ -106,8 +106,8 @@ public abstract class AxiomSOAPHeaderBlockMixin implements 
AxiomSOAPHeaderBlock
         // Copy the processed flag.  The other SOAPHeaderBlock information
         // (e.g. role, mustUnderstand) are attributes on the tag and are 
copied elsewhere.
         Boolean processedFlag =
-                options instanceof SOAPCloneOptions
-                        ? ((SOAPCloneOptions) options).getProcessedFlag()
+                options instanceof SOAPCloneOptions soapCloneOptions
+                        ? soapCloneOptions.getProcessedFlag()
                         : null;
         if ((processedFlag == null && ((SOAPHeaderBlock) other).isProcessed())
                 || (processedFlag != null && processedFlag.booleanValue())) {
diff --git a/pom.xml b/pom.xml
index 39d97c937..a57fa5879 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1035,7 +1035,7 @@
                         <compilerArg>-XDcompilePolicy=simple</compilerArg>
                         
<compilerArg>-XDaddTypeAnnotationsToSymbol=true</compilerArg>
                         <compilerArg>--should-stop=ifError=FLOW</compilerArg>
-                        <compilerArg>-Xplugin:ErrorProne 
-XepExcludedPaths:.*/org/(jaxen|w3c)/.* -Xep:MissingOverride:ERROR 
-Xep:StatementSwitchToExpressionSwitch:ERROR</compilerArg>
+                        <compilerArg>-Xplugin:ErrorProne 
-XepExcludedPaths:.*/org/(jaxen|w3c)/.* -Xep:MissingOverride:ERROR 
-Xep:StatementSwitchToExpressionSwitch:ERROR 
-Xep:PatternMatchingInstanceof:ERROR</compilerArg>
                         
<compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</compilerArg>
                         
<compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</compilerArg>
                         
<compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</compilerArg>
diff --git 
a/systests/old-tests/src/test/java/org/apache/axiom/om/impl/mtom/MTOMStAXSOAPModelBuilderTest.java
 
b/systests/old-tests/src/test/java/org/apache/axiom/om/impl/mtom/MTOMStAXSOAPModelBuilderTest.java
index a7cae7c15..7a8f29a27 100644
--- 
a/systests/old-tests/src/test/java/org/apache/axiom/om/impl/mtom/MTOMStAXSOAPModelBuilderTest.java
+++ 
b/systests/old-tests/src/test/java/org/apache/axiom/om/impl/mtom/MTOMStAXSOAPModelBuilderTest.java
@@ -114,11 +114,8 @@ public class MTOMStAXSOAPModelBuilderTest extends TestCase 
{
         List<OMText> binaryNodes = new ArrayList<>();
         for (Iterator<OMSerializable> it = doc.getDescendants(false); 
it.hasNext(); ) {
             OMSerializable node = it.next();
-            if (node instanceof OMText) {
-                OMText text = (OMText) node;
-                if (text.isBinary()) {
-                    binaryNodes.add(text);
-                }
+            if (node instanceof OMText text && text.isBinary()) {
+                binaryNodes.add(text);
             }
         }
         assertFalse(binaryNodes.isEmpty());
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/dimension/ExpansionStrategy.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/dimension/ExpansionStrategy.java
index f3e78023f..046acbcf9 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/dimension/ExpansionStrategy.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/dimension/ExpansionStrategy.java
@@ -44,9 +44,9 @@ public abstract class ExpansionStrategy extends Multiton 
implements Dimension {
 
                 @Override
                 public void apply(OMContainer container) {
-                    if (container instanceof OMSourcedElement) {
+                    if (container instanceof OMSourcedElement sourcedElement) {
                         // Do nothing, but check that the element isn't 
expanded already
-                        Assert.assertFalse(((OMSourcedElement) 
container).isExpanded());
+                        Assert.assertFalse(sourcedElement.isExpanded());
                     } else {
                         Assert.assertFalse(container.isComplete());
                     }
@@ -83,8 +83,8 @@ public abstract class ExpansionStrategy extends Multiton 
implements Dimension {
                 @Override
                 public void apply(OMContainer container) {
                     container.getFirstOMChild();
-                    if (container instanceof OMSourcedElement) {
-                        Assert.assertTrue(((OMSourcedElement) 
container).isExpanded());
+                    if (container instanceof OMSourcedElement sourcedElement) {
+                        Assert.assertTrue(sourcedElement.isExpanded());
                     }
                     Assert.assertFalse(container.isComplete());
                 }
@@ -118,8 +118,8 @@ public abstract class ExpansionStrategy extends Multiton 
implements Dimension {
                 public void apply(OMContainer container) {
                     container.getFirstOMChild();
                     container.build();
-                    if (container instanceof OMSourcedElement) {
-                        Assert.assertTrue(((OMSourcedElement) 
container).isExpanded());
+                    if (container instanceof OMSourcedElement sourcedElement) {
+                        Assert.assertTrue(sourcedElement.isExpanded());
                     }
                     Assert.assertTrue(container.isComplete());
                 }
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/dimension/serialization/SerializeToXMLStreamWriter.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/dimension/serialization/SerializeToXMLStreamWriter.java
index 154fa6366..c0d925c71 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/dimension/serialization/SerializeToXMLStreamWriter.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/dimension/serialization/SerializeToXMLStreamWriter.java
@@ -51,8 +51,8 @@ public class SerializeToXMLStreamWriter extends 
SerializationStrategy {
         // Since Axiom has no way of knowing the encoding used by the 
XMLStreamWriter,
         // it will just keep the original one when writing the XML 
declaration. Adjust
         // the output encoding so that it will match the encoding in the XML 
declaration.
-        if (container instanceof OMDocument) {
-            encoding = ((OMDocument) container).getXMLEncoding();
+        if (container instanceof OMDocument document) {
+            encoding = document.getXMLEncoding();
         }
         if (encoding == null) {
             encoding = "UTF-8";
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/DigestTestCase.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/DigestTestCase.java
index a897792c8..7abf1dd6b 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/DigestTestCase.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/DigestTestCase.java
@@ -49,10 +49,10 @@ public abstract class DigestTestCase extends AxiomTestCase {
         OMInformationItem node = createInformationItem();
         DigestGenerator digestGenerator = new DigestGenerator();
         byte[] digest;
-        if (node instanceof OMDocument) {
-            digest = digestGenerator.getDigest((OMDocument) node, algorithm);
-        } else if (node instanceof OMAttribute) {
-            digest = digestGenerator.getDigest((OMAttribute) node, algorithm);
+        if (node instanceof OMDocument document) {
+            digest = digestGenerator.getDigest(document, algorithm);
+        } else if (node instanceof OMAttribute attribute) {
+            digest = digestGenerator.getDigest(attribute, algorithm);
         } else {
             digest = digestGenerator.getDigest((OMNode) node, algorithm);
         }
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestStandaloneConfiguration.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestStandaloneConfiguration.java
index 9005d292f..93408d918 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestStandaloneConfiguration.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/builder/TestStandaloneConfiguration.java
@@ -53,8 +53,8 @@ public class TestStandaloneConfiguration extends 
AxiomTestCase {
         OMDocType docType = null;
         while (docType == null && i.hasNext()) {
             OMNode obj = i.next();
-            if (obj instanceof OMDocType) {
-                docType = (OMDocType) obj;
+            if (obj instanceof OMDocType omDocType) {
+                docType = omDocType;
             }
         }
         assertTrue(docType != null);
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestSerialize.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestSerialize.java
index c5449f80c..6a9227b79 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestSerialize.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestSerialize.java
@@ -144,8 +144,8 @@ public class TestSerialize extends AxiomTestCase {
                 assertEquals("Parent completion status", parentComplete, 
parent.isComplete());
             }
         }
-        if (ds instanceof PullOMDataSource) {
-            assertFalse(((PullOMDataSource) ds).hasUnclosedReaders());
+        if (ds instanceof PullOMDataSource pullOmDataSource) {
+            assertFalse(pullOmDataSource.hasUnclosedReaders());
         }
     }
 }
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestSerializeOMDataSourceWritingToOutputStream.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestSerializeOMDataSourceWritingToOutputStream.java
index b19b230c0..ff65450c8 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestSerializeOMDataSourceWritingToOutputStream.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestSerializeOMDataSourceWritingToOutputStream.java
@@ -51,10 +51,9 @@ public class TestSerializeOMDataSourceWritingToOutputStream 
extends AxiomTestCas
         public void serialize(XMLStreamWriter writer) throws 
XMLStreamException {
             OutputStream out;
             String encoding;
-            if (writer instanceof MTOMXMLStreamWriter) {
-                MTOMXMLStreamWriter writer2 = (MTOMXMLStreamWriter) writer;
-                out = writer2.getOutputStream();
-                encoding = writer2.getCharSetEncoding();
+            if (writer instanceof MTOMXMLStreamWriter mtomWriter) {
+                out = mtomWriter.getOutputStream();
+                encoding = mtomWriter.getCharSetEncoding();
             } else {
                 out = null;
                 encoding = null;
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/TestSetOptimize.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/TestSetOptimize.java
index 73616021b..059670d7b 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/TestSetOptimize.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/xop/TestSetOptimize.java
@@ -63,8 +63,7 @@ public class TestSetOptimize extends AxiomTestCase {
                             .getDocument();
             for (Iterator<OMSerializable> it = document.getDescendants(false); 
it.hasNext(); ) {
                 OMSerializable node = it.next();
-                if (node instanceof OMText) {
-                    OMText text = (OMText) node;
+                if (node instanceof OMText text) {
                     if (text.isBinary()) {
                         text.setOptimize(optimize);
                     }
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/TestRegisterCustomBuilderForPayload.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/TestRegisterCustomBuilderForPayload.java
index 51feb4bbc..87e2025e1 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/TestRegisterCustomBuilderForPayload.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/TestRegisterCustomBuilderForPayload.java
@@ -81,8 +81,8 @@ public class TestRegisterCustomBuilderForPayload extends 
AxiomTestCase {
                 .ignoringPrologAndEpilog()
                 .ignoringRedundantNamespaceDeclarations()
                 .hasSameContentAs(message.getInputStream());
-        if (payload instanceof OMSourcedElement) {
-            assertThat(((OMSourcedElement) payload).isExpanded()).isFalse();
+        if (payload instanceof OMSourcedElement sourcedElement) {
+            assertThat(sourcedElement.isExpanded()).isFalse();
         }
     }
 }
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/envelope/CloneTestCase.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/envelope/CloneTestCase.java
index 1df5f22b4..1f8652f3e 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/envelope/CloneTestCase.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/envelope/CloneTestCase.java
@@ -67,20 +67,18 @@ public abstract class CloneTestCase extends SOAPTestCase {
      */
     protected void identityCheck(OMNode source, OMNode target, String depth) {
         // System.out.println(depth + source.getClass().getName());
-        if (source instanceof OMElement) {
+        if (source instanceof OMElement element) {
 
-            if (source instanceof OMSourcedElement) {
+            if (element instanceof OMSourcedElement sourcedElement) {
                 assertTrue(
                         "Source = "
-                                + source.getClass().getName()
+                                + element.getClass().getName()
                                 + "Target = "
                                 + target.getClass().getName(),
                         target instanceof OMSourcedElement);
-                assertEquals(
-                        ((OMSourcedElement) source).isExpanded(),
-                        ((OMSourcedElement) target).isExpanded());
-                if (((OMSourcedElement) source).isExpanded()) {
-                    Iterator<OMNode> i = ((OMElement) source).getChildren();
+                assertEquals(sourcedElement.isExpanded(), ((OMSourcedElement) 
target).isExpanded());
+                if (sourcedElement.isExpanded()) {
+                    Iterator<OMNode> i = element.getChildren();
                     Iterator<OMNode> j = ((OMElement) target).getChildren();
                     while (i.hasNext() && j.hasNext()) {
                         OMNode sourceChild = i.next();
@@ -93,8 +91,8 @@ public abstract class CloneTestCase extends SOAPTestCase {
                             j.hasNext());
                 }
             } else {
-                assertEquals(source.getClass(), target.getClass());
-                Iterator<OMNode> i = ((OMElement) source).getChildren();
+                assertEquals(element.getClass(), target.getClass());
+                Iterator<OMNode> i = element.getChildren();
                 Iterator<OMNode> j = ((OMElement) target).getChildren();
                 while (i.hasNext() && j.hasNext()) {
                     OMNode sourceChild = i.next();
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/mtom/TestBuilderDetach.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/mtom/TestBuilderDetach.java
index 78b42d6cb..213a10f7f 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/mtom/TestBuilderDetach.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/mtom/TestBuilderDetach.java
@@ -57,8 +57,7 @@ public class TestBuilderDetach extends AxiomTestCase {
         int binaryCount = 0;
         for (Iterator<OMNode> it = envelope.getDescendants(false); 
it.hasNext(); ) {
             OMNode node = it.next();
-            if (node instanceof OMText) {
-                OMText text = (OMText) node;
+            if (node instanceof OMText text) {
                 if (text.isBinary()) {
                     IOTestUtils.compareStreams(
                             sample.getPart(text.getContentID()), 
text.getBlob().getInputStream());
diff --git 
a/testing/axiom-truth/src/main/java/org/apache/axiom/truth/AxiomTraverser.java 
b/testing/axiom-truth/src/main/java/org/apache/axiom/truth/AxiomTraverser.java
index 60f7edd51..de4c92703 100644
--- 
a/testing/axiom-truth/src/main/java/org/apache/axiom/truth/AxiomTraverser.java
+++ 
b/testing/axiom-truth/src/main/java/org/apache/axiom/truth/AxiomTraverser.java
@@ -53,8 +53,8 @@ final class AxiomTraverser implements Traverser {
     @Override
     public Event next() throws TraverserException {
         if (node == null) {
-            if (root instanceof OMDocument) {
-                node = ((OMDocument) root).getFirstOMChild();
+            if (root instanceof OMDocument document) {
+                node = document.getFirstOMChild();
             } else {
                 node = (OMElement) root;
             }
@@ -76,8 +76,8 @@ final class AxiomTraverser implements Traverser {
                 OMContainer parent = node.getParent();
                 if (parent instanceof OMDocument) {
                     return null;
-                } else {
-                    node = (OMElement) parent;
+                } else if (parent instanceof OMElement element) {
+                    node = element;
                     visited = true;
                 }
             }
diff --git 
a/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/DOMXML.java 
b/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/DOMXML.java
index 35ed15a81..683861ab1 100644
--- a/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/DOMXML.java
+++ b/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/DOMXML.java
@@ -29,7 +29,7 @@ final class DOMXML implements XML {
 
     DOMXML(Node root) {
         this.root = root;
-        Document document = root instanceof Document ? (Document) root : 
root.getOwnerDocument();
+        Document document = root instanceof Document doc ? doc : 
root.getOwnerDocument();
         dom3 = document.getImplementation().hasFeature("XML", "3.0");
     }
 

Reply via email to