eclipse-ee4j / starter

Eclipse Starter for Jakarta EE
Eclipse Public License 2.0
50 stars 38 forks source link

Servlet to generate a ZIP file from maven archetype #155

Closed OndroMih closed 1 year ago

OndroMih commented 1 year ago

A ZIP file can be generated with the following URL when running locally:

http://localhost:8080/starter-ui/download.zip?archetypeGroupId=org.eclipse.starter&archetypeArtifactId=jakartaee10-minimal&archetypeVersion=1.1.0&groupId=ee.omnifish&artifactId=sample&profile=core-api&version=1.0.0-SNAPSHOT

Only archetypeGroupId, archetypeArtifactId and archetypeVersion parameters are required. If they aren't provided, an internal error is raised. All other parameters have default values if not provided.

This can be later integrated into the UI as a dynamic link generated in a similar way as we now generate the maven command.

eclipse-starter-bot commented 1 year ago

Can one of the admins verify this patch?

OndroMih commented 1 year ago

Oh, build fails on Java 8. It's easy to fix but Is it really necessary to build against Java 8?

m-reza-rahman commented 1 year ago

Please fix it? As you know, the baseline for Jakarta EE 8 is still Java SE 8. Also, I see many, many customers still using Java SE 8. It’s probably best to support these folks if the effort is reasonable.

rokon12 commented 1 year ago

@m-reza-rahman do we need this for UI project? I think we can even go ahead and use java 17 for it. This is going to be an independent deployment, isn't it?

m-reza-rahman commented 1 year ago

Just for the UI, yes no need for Java SE 8. I don't think App Service JBoss EAP has rolled out support for Java SE 17 yet. I think that will happen in the new year. Java SE 11 should be fine for the UI code though. In the CI job, we just need to make sure the generated code works against Java SE 8, 11, 17, etc (the basic framework for that is in place already).

OndroMih commented 1 year ago

I've moved the Starter UI modules to a maven profile, which isn't activated for Java 8. This will allow building everything from the parent maven module when using Java 11+, and still allow running the Github pipeline with Java 8 where the Starter UI is ignored.

I also change the packaging of the Starter UI module to WAR, so that the WAR is built with just mvn package, without explicitly running the WAR maven plugin. I don't understand why it was set up to compile like that.

OndroMih commented 1 year ago

I haven't converted the code to use Jakarta Rest, I think it's better to do it in a separate PR because the documentation also needs to be updated a bit - it would no longer run on Tomcat without adding a REST implementation to it.

m-reza-rahman commented 1 year ago

I think @rokon12 can help merge this for you and get the hosting process started. It can sit for now with the rest of the code we had been working on. Once hosting is sorted out, we should ensure no one has an objection to making this important change "live".

One matter to remind folks and get agreement is that the App Service team wishes to have a very small logo placement at the bottom of Stater UI, much like I have for Cargo Tracker: https://github.com/eclipse-ee4j/cargotracker#cloud-demo. If that's not OK somehow, the alternative is to try to find another hosting sponsor (maybe another Jakarta EE Working Group member?).

rokon12 commented 1 year ago

I tested this locally and works as expected. I think we can merge it.