diff --git a/pom.xml b/pom.xml
index 029bee5..b58351c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
     <artifactId>xmlsec</artifactId>
     <packaging>bundle</packaging>
     <name>Apache XML Security for Java</name>
-    <version>2.2.1-SNAPSHOT</version>
+    <version>2.3.0-SNAPSHOT</version>
     <description>
         Apache XML Security for Java supports XML-Signature Syntax and Processing,
         W3C Recommendation 12 February 2002, and XML Encryption Syntax and
diff --git a/src/main/java/org/apache/jcp/xml/dsig/internal/dom/XMLDSigRI.java b/src/main/java/org/apache/jcp/xml/dsig/internal/dom/XMLDSigRI.java
index 67653f2..b35f817 100644
--- a/src/main/java/org/apache/jcp/xml/dsig/internal/dom/XMLDSigRI.java
+++ b/src/main/java/org/apache/jcp/xml/dsig/internal/dom/XMLDSigRI.java
@@ -121,7 +121,7 @@
 
     public XMLDSigRI() {
         /* We are the ApacheXMLDSig provider */
-        super("ApacheXMLDSig", 2.21, INFO);
+        super("ApacheXMLDSig", 2.30, INFO);
 
         final Provider p = this;
         AccessController.doPrivileged(new PrivilegedAction<Void>() {
diff --git a/src/main/java/org/apache/xml/security/stax/impl/securityToken/GenericOutboundSecurityToken.java b/src/main/java/org/apache/xml/security/stax/impl/securityToken/GenericOutboundSecurityToken.java
index a79cce9..4d36879 100644
--- a/src/main/java/org/apache/xml/security/stax/impl/securityToken/GenericOutboundSecurityToken.java
+++ b/src/main/java/org/apache/xml/security/stax/impl/securityToken/GenericOutboundSecurityToken.java
@@ -25,6 +25,7 @@
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.xml.security.stax.ext.OutputProcessor;
 import org.w3c.dom.Element;
 import org.apache.xml.security.exceptions.XMLSecurityException;
 import org.apache.xml.security.stax.securityToken.OutboundSecurityToken;
@@ -36,7 +37,7 @@
 public class GenericOutboundSecurityToken extends AbstractSecurityToken implements OutboundSecurityToken {
 
     private SecurityTokenConstants.TokenType tokenType;
-    private Object processor;
+    private OutputProcessor processor;
     private final List<OutboundSecurityToken> wrappedTokens = new ArrayList<>();
     private OutboundSecurityToken keyWrappingToken;
     private Element customTokenReference;
@@ -60,11 +61,11 @@
     }
 
     @Override
-    public Object getProcessor() {
+    public OutputProcessor getProcessor() {
         return processor;
     }
 
-    public void setProcessor(Object processor) {
+    public void setProcessor(OutputProcessor processor) {
         this.processor = processor;
     }
 
diff --git a/src/main/java/org/apache/xml/security/stax/securityToken/OutboundSecurityToken.java b/src/main/java/org/apache/xml/security/stax/securityToken/OutboundSecurityToken.java
index bf454f1..cce5203 100644
--- a/src/main/java/org/apache/xml/security/stax/securityToken/OutboundSecurityToken.java
+++ b/src/main/java/org/apache/xml/security/stax/securityToken/OutboundSecurityToken.java
@@ -20,6 +20,7 @@
 
 import java.security.Key;
 
+import org.apache.xml.security.stax.ext.OutputProcessor;
 import org.w3c.dom.Element;
 
 import org.apache.xml.security.exceptions.XMLSecurityException;
@@ -33,7 +34,7 @@
      *
      * @return the processor responsible for this token
      */
-    Object getProcessor();
+    OutputProcessor getProcessor();
 
     /**
      * Returns the secret key
