From d02786bbd7463c0376646236584b83540084971b Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Fri, 22 Apr 2022 13:24:34 +0200 Subject: [PATCH] [Project] Updated documentation for creating webapps --- content/development/_index.md | 80 +++++++++++++++++++++--------- static/assets/images/demo-app.png | Bin 0 -> 45229 bytes 2 files changed, 57 insertions(+), 23 deletions(-) create mode 100644 static/assets/images/demo-app.png diff --git a/content/development/_index.md b/content/development/_index.md index 37e9a79..27c7920 100644 --- a/content/development/_index.md +++ b/content/development/_index.md @@ -5,7 +5,7 @@ weight: 90 ## Prerequisites To start developing Strolch you need an installed: -* Java JDK 11 +* Java JDK 17 * Apache Maven 3.x ## Building Strolch @@ -32,20 +32,6 @@ projects. Now you can start modifying the projects, and add your own features, or, far more interesting, start developing your projects using the Strolch agent. -## Converting an existing application - -You can convert an existing application to a Strolch agent, but this might be a -bit daunting in the beginning. If you are planning on doing this, first create a -test application using the maven archetypes, so that you can get a feel for the configuration. - -Once that works, use the archetypes configuration to reconfigure your project to start as a Strolch agent. - -{{% notice warning %}} -Note: Beware to select the archetype pertaining to your use case: - * For a web app use the [li.strolch.mvn.archetype.webapp](/development/#creating-a-java-strolch-web-app) - * For a application with a main method use [li.strolch.mvn.archetype.main](/development/#creating-a-simple-java-strolch-app) -{{% /notice %}} - ## Creating a Strolch App To create your own Strolch App, you can use Maven's archetype generation. There @@ -55,7 +41,7 @@ usual way to run Strolch runtimes. {{% notice warning %}} Note: you need to have installed Strolch to your local maven repo, otherwise the -archetype won't be available. +archetype won't be available. {{% /notice %}} ### Creating a Java Strolch Web App @@ -70,10 +56,11 @@ The code is also available on [GitHub](https://github.com/strolch-li/strolch/tre mvn archetype:generate \ -DarchetypeGroupId=li.strolch \ -DarchetypeArtifactId=li.strolch.mvn.archetype.webapp \ - -DarchetypeVersion=1.6.0-SNAPSHOT \ + -DarchetypeVersion=1.8.0-SNAPSHOT \ -DgroupId= \ -DartifactId= \ -Dversion= \ + -Dpackage= \ -DappName="" ``` @@ -87,23 +74,56 @@ Once NodeJS is installed, then you can prepare the web dependencies: ```shell cd src/main/webapp/ +npm install bower -g npm install gulp -g npm install +bower install gulp +cd ../../.. ``` {{% notice warning %}} Note: Whenever the bower.json is changed then you should again call npm install inside the webapp folder. {{% /notice %}} -#### Building the WAR - +#### Building and running the WAR Building the WAR uses the `package` maven goal, but to have the optimized WAR -use the `release` profile: +use the `release` profile. -```shell -mvn clean package -Prelease +To run this WAR, we must configure the path of Strolch's runtime in the `StrolchBootstrap.xml` file, by updating the following block, +setting the absolute path to the `runtime` from the new project: +```xml + + /absolute/path/to/<my-artifactId>/runtime + test + ``` +Now we can build the project using the configured environment: +```shell +mvn clean package -Prelease -Dstrolch.env=test +``` + +Now copy the WAR from the `target/` directory to the `webapps/` directory of your Tomcat 9.x installation. Now you can start tomcat using: +```shell +catalina.sh run +``` + +In the console you'll then see something like this: +```log +INFO l.s.a.impl.ComponentContainerImpl:283 start - System: OS: Linux 5.16.15 Arch: amd64 on Java Azul Systems, Inc. 17 CPU Cores: 32 +INFO l.s.a.impl.ComponentContainerImpl:284 start - Memory: Memory available 16.8 GB / Used: 604.0 MB / Free: 540.6 MB +INFO l.s.a.impl.ComponentContainerImpl:285 start - Using locale en with timezone Europe/Zurich +INFO l.s.a.impl.ComponentContainerImpl:288 start - file.encoding: UTF-8 / sun.jnu.encoding UTF-8 +INFO l.s.a.impl.ComponentContainerImpl:307 start - eSyTest:test All 12 Strolch Components started. Took 43ms. Strolch is now ready to be used. Have fun =)) +INFO c.atexxi.esytest.web.StartupListener:43 contextInitialized - Started eSyTest in 244ms +``` + +And now you can open a browser and login: `http://localhost:8080/` + +The default username and password are `admin` / `admin`. After logging you, you should see the following view: + +![Strolch Demo App](/assets/images/demo-app.png) + Happy coding =)) ### Creating a simple Java Strolch App @@ -119,7 +139,7 @@ The code is also available on [GitHub](https://github.com/strolch-li/strolch/tre mvn archetype:generate \ -DarchetypeGroupId=li.strolch \ -DarchetypeArtifactId=li.strolch.mvn.archetype.main \ - -DarchetypeVersion=1.6.0-SNAPSHOT \ + -DarchetypeVersion=1.8.0-SNAPSHOT \ -DgroupId= \ -DartifactId= \ -Dversion= \ @@ -141,6 +161,20 @@ mvn exec:java Happy coding =)) +## Converting an existing application + +You can convert an existing application to a Strolch agent, but this might be a +bit daunting in the beginning. If you are planning on doing this, first create a +test application using the maven archetypes, so that you can get a feel for the configuration. + +Once that works, use the archetypes configuration to reconfigure your project to start as a Strolch agent. + +{{% notice warning %}} +Note: Beware to select the archetype pertaining to your use case: +* For a web app use the [li.strolch.mvn.archetype.webapp](/development/#creating-a-java-strolch-web-app) +* For a application with a main method use [li.strolch.mvn.archetype.main](/development/#creating-a-simple-java-strolch-app) + {{% /notice %}} + ## Tools used The following tools are used to develop Strolch and Strolch-based projects: diff --git a/static/assets/images/demo-app.png b/static/assets/images/demo-app.png new file mode 100644 index 0000000000000000000000000000000000000000..9ba2e2c58ac3d8b70d2e249c99b13f21028389ab GIT binary patch literal 45229 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