Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

Need more guidance on migrating Java 8 App Engine Standard Cloud Endpoints application to Java 11

The documentation here explains how to migrate a Java 8 App Engine app to a Java 11 App Engine app. One section says:

The Java 11/17 runtimes do not include any web-serving framework unless you are using the legacy bundled services. This means that you can use a framework other than a servlet-based framework. If you are using the legacy bundled services, the Java 11/17 runtimes provide the Jetty web-serving framework.

There are hello world samples using popular Java web frameworks on the Google Cloud GitHub repository:

However, I cannot find any help on how to migrate an existing production application to a new web-serving framework or how it all exactly is supposed to work in terms of updating our Java code and deploying the app.

In our case, we have a live production Java Standard App Engine Cloud Endpoints app. We migrated it from Java 8 to Java 11 but since we still have legacy services we are benefiting from the app still being deployed from what I understand is Jetty. We also did the Endpoints v2 migration as shown here.

Are there any guides on what we should do to our app after removing legacy services? Which web-framework should we use to keep things as similar as possible in our code? Preferably, can we be shown how to continue to use Jetty (or whatever else is used under the hood)? Do we need to remove Endpoints Frameworks for App Engine Standard all together? Also, can we continue to use Endpoints method annotations such as @ApiMethod, etc.? Just what kind of changes do we need to make to our project and code?

There is also the question of iOS and Android client generated libraries by Cloud Endpoints. One of the key selling points advertised by Cloud Endpoints has been that you can easily generate client libraries for iOS/Android. How are we supposed to do this now if getting off of Endpoints Frameworks is required? I noticed that many github repos such this Endpoints Frameworks one and this Cloud Endpoints v2 one for Android are archived now. For our clients, we are using the auto-generated iOS and Android client libraries to call our backend api.

As you can see there are many unanswered questions when doing such a large migration and simply having a github link to a starter project isn't enough. A migration such as this can be very scary and we want to avoid downtime so I hope the team can create a more comprehensive guide. Thank you.

 

6 5 1,999
5 REPLIES 5

Yup, same here I have ZERO idea how to migrate my DiaryBooker product which I first wrote in 2009!!!

I guess I am just going to have to cross my fingers and pray that I do not wipe out all my customers businesses!

Former Community Member
Not applicable

It's rather shocking how careless Google is acting in forcing such large migrations without any adequate guidance on so many developers...  Wish we hadn't used GAE to begin with!  Google really doesn't deserve our business.

I am in the same boat (or drowning near the boat), but this helped me, at least for 2 more years:

Thanks a lot for this response. You save me with this link.

I can't understand why Google don't give this url to everybody who has a project with this limitation.

I was trying to find a way to migrate my project from java8 to java11. I have finished the migration but it is developed in jsf and I am unable to make it work in the new stack.

Thanks,

Jorge Merino

I have been talking to Google Support about migrating off of Cloud Endpoints Framework for Java.  They have created this:
https://issuetracker.google.com/issues/381035656?pli=1#comment1