GoogleCloudPlatform / google-cloud-eclipse

Google Cloud Platform plugin for Eclipse
Apache License 2.0
86 stars 49 forks source link

New App Engine project wizards should allow selecting Cloud Libraries too #2907

Open briandealwis opened 6 years ago

briandealwis commented 6 years ago

New App Engine project wizards should have a second page for selecting from the available Cloud Libraries.

elharo commented 6 years ago

How many people will want this? It may cost users more time than it saves.

briandealwis commented 6 years ago

The current process is pretty hard to discover. It would be an optional page so that they can hit "Finish" from the first page. I think many App Engine projects will want Datastore (if they don't choose Objectify). Pub/Sub is also useful.

Compare to the New Java Project wizard that has an optional second page to configure the source roots, associated projects, and libraries for the project.

elharo commented 6 years ago

Endpoints and Objectify are on the initial screen:

image

We might add a second screen for the cloud client libraries, but at a minimum I'd like to fix https://github.com/GoogleCloudPlatform/appengine-plugins-core/issues/526 first. Any thoughts about we should approach that? Should we move the more important libraries to the top of the list? Should we separate GA and non-GA libraries?

2459 is a nice to have too.

P.S. Not a prerequisite, but the alignment of the cloud icon in this dialog still itches me every time I see it. Need to figure out how to move it a pixel down and left. #2029

patflynn commented 6 years ago

For libraries like translate and vision this makes a lot of sense. But we risk really confusing AE standard users because the google-cloud-java versions of the core app engine services such as datastore are either not ready, completely break the API, or have poor to no emulator support.

elharo commented 6 years ago

@briandealwis You mentioned the New Java Project wizard. That's a good comparison. To a large extent one our App Engine projects is a Java project, and that makes me wonder if it would be helpful to have a more general solution for handling external jars and such on project creation, much like the New Java Project wizard. This could handle cloud client libraries and non App Engine specific libraries such as JodaTime.

image

OTOH, the new Maven project wizard doesn't have anything like this. It's one screen and done, with no extra dependencies added on project creation.

briandealwis commented 6 years ago

But Maven users are used to editing the POM, and they offer a POM editor that simplifies selecting items. Not to mention that no picker could ever scale to millions of artifacts :-)

I think it's more accurate to say we craft WTP Java web projects. They're not general Java projects. Most of the options in that Java Build Path panel are configured by WTP (or m2e-wtp).