From f6297e49cf4bf3b3c473128dd32335ca3cbf6b9d Mon Sep 17 00:00:00 2001
From: Alexander Cramb <alex.cramb@r3.com>
Date: Wed, 11 Oct 2023 16:17:06 +0100
Subject: [PATCH 1/3] Bump API version

---
 gradle.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gradle.properties b/gradle.properties
index 31ad01706d..7ae9d103b1 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -12,7 +12,7 @@ cordaProductVersion = 5.1.0-INTEROP
 ## IMPORTANT:
 ## The interop feature branches track api revisions separately to the mainline branch.
 ## API version of last merge from corda mainline: 19
-cordaApiRevision = 21
+cordaApiRevision = 22
 
 # Main
 kotlinVersion = 1.8.21

From b619b2eeac89d91935333c378d466c8384aac840 Mon Sep 17 00:00:00 2001
From: Alexander Cramb <alex.cramb@r3.com>
Date: Wed, 11 Oct 2023 16:18:30 +0100
Subject: [PATCH 2/3] Change facadeId parameter of getProxy from String to
 FacadeId

---
 .../java/net/corda/v5/application/interop/FacadeService.java   | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/application/src/main/java/net/corda/v5/application/interop/FacadeService.java b/application/src/main/java/net/corda/v5/application/interop/FacadeService.java
index 6aeebbc7f0..83533c3551 100644
--- a/application/src/main/java/net/corda/v5/application/interop/FacadeService.java
+++ b/application/src/main/java/net/corda/v5/application/interop/FacadeService.java
@@ -1,6 +1,7 @@
 package net.corda.v5.application.interop;
 
 import net.corda.v5.application.interop.facade.Facade;
+import net.corda.v5.application.interop.facade.FacadeId;
 import net.corda.v5.application.interop.facade.FacadeRequest;
 import net.corda.v5.application.interop.facade.FacadeResponse;
 import net.corda.v5.base.annotations.Suspendable;
@@ -21,7 +22,7 @@ public interface FacadeService {
      *    instance invokes a Facade method on a peer Identity denoted by an <code>alias</code> from an <code>interopGroup</code>.
      */
     @Suspendable
-    <T> T getProxy(String facadeId, Class<T> expectedType, InterOpIdentityInfo interopIdentity);
+    <T> T getProxy(FacadeId facadeId, Class<T> expectedType, InterOpIdentityInfo interopIdentity);
 
     /**
      * Interprets a Facade request and invokes a matching method on the target class.

From a5aa8c7dcbe4055cf68ee06381f4fb336b58cf02 Mon Sep 17 00:00:00 2001
From: Alexander Cramb <alex.cramb@r3.com>
Date: Wed, 11 Oct 2023 16:34:45 +0100
Subject: [PATCH 3/3] Make facade ID non nullable

---
 .../java/net/corda/v5/application/interop/FacadeService.java   | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/application/src/main/java/net/corda/v5/application/interop/FacadeService.java b/application/src/main/java/net/corda/v5/application/interop/FacadeService.java
index 83533c3551..84f355c554 100644
--- a/application/src/main/java/net/corda/v5/application/interop/FacadeService.java
+++ b/application/src/main/java/net/corda/v5/application/interop/FacadeService.java
@@ -5,6 +5,7 @@
 import net.corda.v5.application.interop.facade.FacadeRequest;
 import net.corda.v5.application.interop.facade.FacadeResponse;
 import net.corda.v5.base.annotations.Suspendable;
+import org.jetbrains.annotations.NotNull;
 
 /**
  * Service to perform Corda to Corda interoperability calls using Facades.
@@ -22,7 +23,7 @@ public interface FacadeService {
      *    instance invokes a Facade method on a peer Identity denoted by an <code>alias</code> from an <code>interopGroup</code>.
      */
     @Suspendable
-    <T> T getProxy(FacadeId facadeId, Class<T> expectedType, InterOpIdentityInfo interopIdentity);
+    <T> T getProxy(@NotNull FacadeId facadeId, Class<T> expectedType, InterOpIdentityInfo interopIdentity);
 
     /**
      * Interprets a Facade request and invokes a matching method on the target class.