> *My question is: what do you expect from such an archetype?*

It would be great to have an example for a minimum viable product.  So how 
to do a mvn package on an app created 
with https://github.com/tbroyer/gwt-maven-archetypes to get an executable 
jar that doesn't need an existing web server.

> *I could easily write a Main class that runs an embedded Jetty server 
with the configured GWT-RPC servlet and serving static resources from 
multiple dirs.*

If that's what we need to get an executable jar, yes please!  🙂

On Sunday 25 February 2024 at 9:40:35 am UTC+11 Thomas Broyer wrote:

> In retrospect, I think the GWT BOM (to avoid managing non-GWT dependencies 
> where there's no need to) possibly either should only be used in the client 
> module, or should really only list GWT artifacts. That being said, if you 
> use the Jetty BOM in the server module (and you should), it should override 
> the GWT BOM.
>
> On Saturday, February 24, 2024 at 8:11:38 PM UTC+1 [email protected] 
> wrote:
>
>> The gwt artifact is indeed in dependency management, but when the 
>> jetty-main jar for jetty 11 is a dependency of server module it draws in 
>> jetty 9 dependencies and and also gwt-servlet leading to a no javax-servlet 
>> error. Remove gwt from the root fixes it.  Maybe this will cause problems 
>> beyond this sample.
>>
>>
>> Sent from Yahoo Mail on Android 
>> <https://mail.onelink.me/107872968?pid=nativeplacement&c=Global_Acquisition_YMktg_315_Internal_EmailSignature&af_sub1=Acquisition&af_sub2=Global_YMktg&af_sub3=&af_sub4=100000604&af_sub5=EmailSignature__Static_>
>>
>> On Sat, Feb 24, 2024 at 12:14, Thomas Broyer
>> <[email protected]> wrote:
>> I could easily write a Main class that runs an embedded Jetty server 
>> jagwtvax(
>> https://eclipse.dev/jetty/documentation/jetty-12/programming-guide/index.html#pg-server-http-handler-use-servlet-context)
>>  
>> with the configured GWT-RPC servlet and serving static resources from 
>> multiple dirs (
>> https://eclipse.dev/jetty/documentation/jetty-12/programming-guide/index.html#pg-server-http-handler-use-resource),
>>  
>> but then there would still be a whole lot of questions either unanswered or 
>> with an necessarily opinionated answer:
>>
>>
>>    - how to set "dev mode" for the Main class? (to add the codeserver's 
>>    launcherDir to the resource bases; I would personally use a system 
>> property 
>>    with the launcherDir's path and react to its presence/absence)
>>    - how to package/deploy the static resources? as resources in the 
>>    JAR? (that's what I'd do if I'd wanted my deliverable to be a single JAR) 
>>    as a directory alongside the JAR? (that's what I'd do if my deliverable 
>>    were a native deb/rpm/whatever package or a Docker image)
>>    - that Main class would likely not be production-ready (should it use 
>>    the QoSHandler? GzipHandler? how about the CrossOriginHandler? the 
>>    ForwardedRequestCustomizer 
>>    
>> <https://eclipse.dev/jetty/javadoc/jetty-12/org/eclipse/jetty/server/ForwardedRequestCustomizer.html>
>>    ?)
>>    - you'd probably want to refactor the Main class anyway to add 
>>    command-line arguments and/or configuration files, a logging framework, 
>>    possibly dependency-injection, etc.
>>
>> My question is: *what do you expect from such an archetype?*
>>
>> The initial goal was to show how to cleanly/clearly separate 
>> client/shared/server classpaths, which involves some configuration for how 
>> to run the server so it serves the codeserver's launcherDir. As soon as you 
>> go "custom" on the server, you have to handle that specific "dev mode" 
>> configuration, but then it's custom to your custom code, and necessarily 
>> becomes somewhat opinionated. This means that the archetype can't really 
>> "show you how to do things" without being opinionated, and I don't want to 
>> go that road (I specifically don't want to *maintain* such an 
>> opinionated thing). Feel free to create opinionated archetypes though, and 
>> I'll happily review them and help you set them up (this will bring my own 
>> opinions into the mix though)
>>
>>
>> On Friday, February 23, 2024 at 12:05:22 AM UTC+1 
>> [email protected] wrote:
>>
>> I know it's outside of its scope, but it would be great if 
>> https://github.com/tbroyer/gwt-maven-archetypes had an example of "If 
>> you want to create an executable jar with Jetty, this is how you could do 
>> it".  🙂
>>
>> On Thursday 22 February 2024 at 5:30:51 am UTC+11 Tim Macpherson wrote:
>>
>> I tried starting with the tbroyer archetype & to the server project I 
>> added the app engine stuff from the Google sample to build the 
>> appengine-staging dependencies directory.
>> Maybe all that should be in a separate project ?
>>
>> Sent from Yahoo Mail on Android 
>> <https://mail.onelink.me/107872968?pid=nativeplacement&c=Global_Acquisition_YMktg_315_Internal_EmailSignature&af_sub1=Acquisition&af_sub2=Global_YMktg&af_sub3=&af_sub4=100000604&af_sub5=EmailSignature__Static_>
>>
>> On Wed, Feb 21, 2024 at 17:42, Thomas Broyer
>> <[email protected]> wrote:
>>
>>
>>
>> On Wednesday, February 21, 2024 at 3:11:54 PM UTC+1 
>> [email protected] wrote:
>>
>> I've been trying this app engine sample for Java 11+ which uses a JAR 
>> packaged artifact that is installed locally:
>> it provides a Main class to instantiate an HTTP server to run an embedded 
>> web application WAR file.
>>
>> github.com/GoogleCloudPlatform/java-docs-samples/tree/main/appengine-java11/appengine-simple-jetty-main
>> It has explicit jetty 11 dependencies.
>>
>> The WAR project is
>>
>> github.com/GoogleCloudPlatform/java-docs-samples/tree/master/appengine-java11/helloworld-servlet
>> The WAR is run in a local server with:
>> mvn exec:java -Dexec.args="../helloworld-servlet/target/helloworld.war"
>>
>> The problem I have is when I include GWT in the WAR project this draws in 
>> Jetty 9 & other dependencies
>> which get copied to the cloud-deployment dependencies directory.
>>
>>
>> This means you WAR have dependencies on gwt-user and/or gwt-dev, that you 
>> never want to deploy to a server. The WAR should have a dependency on 
>> gwt-servlet only (or requestfactory-server).
>>
>> …and this is exactly what https://github.com/tbroyer/gwt-maven-archetypes 
>> were meant to solve.
>>
>> -- 
>>
>> You received this message because you are subscribed to the Google Groups 
>> "GWT Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To view this discussion on the web visit 
>>
>>
>> https://groups.google.com/d/msgid/google-web-toolkit/c04ab91a-b898-489d-a509-6fafb9a363can%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/google-web-toolkit/c04ab91a-b898-489d-a509-6fafb9a363can%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "GWT Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To view this discussion on the web visit 
>>
>>
>> https://groups.google.com/d/msgid/google-web-toolkit/643460b0-a460-4961-9366-9b0e13cb7990n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/google-web-toolkit/643460b0-a460-4961-9366-9b0e13cb7990n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit/88b1990a-9a18-48b3-9b88-0204f0c7cb80n%40googlegroups.com.

Reply via email to