<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div>I gave Oracle WebLogic Server 14.1.1 a spin on 21-internal with Identity and friends removed. This version of WLS supports Java EE 8.</div></div></div></blockquote><div><br></div><div>I tried the same for OpenLiberty (used in IBM WebSphere), and found two separate problems:</div><div><br></div><div>1: The non-deprecated EJBContext.getCallerPrincipal() returns an instance of java.security.Identity for the unauthenticated case. This method should not initiate loading of this deprecated class, so an instance of java.security.Principal should be returned instead.</div><div>2: A support class for the EJBContext implementation is loaded via reflection using OSGi. The reflective Class.getConstructors() call fails with java.security.Identity not present. This can be fixed by instead constructing the instance of the service in Java via an OSGi ServiceFactory.</div><div><br></div><div>With these two issues fixed, OpenLiberty seems able to load and run apps without the Identity class, as long as they are well behaved and don't call the deprecated getCallerIdentity() method.</div><div><br></div><div>The above changes have been contributed to OpenLiberty as a PR:</div><div><br></div><div><a href="https://github.com/OpenLiberty/open-liberty/pull/25070">https://github.com/OpenLiberty/open-liberty/pull/25070</a><br></div><div><br></div><div>Eirik.</div></div></div>