This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch docker5x
in repository https://gitbox.apache.org/repos/asf/turbine-archetypes.git

commit f2a9ab97e0018259eeb14096bf612526a1d522ed
Author: Georg Kallidis <[email protected]>
AuthorDate: Tue Jul 13 16:54:36 2021 +0200

    db adjustments, fixes dynamic, skip resource scan, if calling jetty 
profile, update log4j, add more documentation
---
 .../archetype-resources/docs/DOCKER-README.md      | 26 ++++++-
 .../resources/archetype-resources/docs/README.md   | 26 ++++++-
 src/main/resources/archetype-resources/pom.xml     | 15 +++-
 .../src/main/docker-resources/docker-compose.yml   | 33 ++++----
 .../src/test/resources/log4j.properties            | 89 ----------------------
 .../src/test/resources/log4j.xml                   | 56 ++++++++++++++
 .../resources/projects/first/archetype.properties  |  1 +
 7 files changed, 131 insertions(+), 115 deletions(-)

diff --git a/src/main/resources/archetype-resources/docs/DOCKER-README.md 
b/src/main/resources/archetype-resources/docs/DOCKER-README.md
index 9ccca34..b6be1e2 100644
--- a/src/main/resources/archetype-resources/docs/DOCKER-README.md
+++ b/src/main/resources/archetype-resources/docs/DOCKER-README.md
@@ -2,6 +2,8 @@
 
 This is to help developers to get fast a running development environment for 
debugging.
 
+To use it in production you may need to carefully review all configurations 
and adjust.
+
 This Docker environment is to test/develop a Turbine app using a docker test 
database. 
 
 The build should take place outside the docker container.
@@ -18,9 +20,16 @@ Docker compose uses currently two services: **app** 
(maven:3-jdk-8) and **db** (
 
 To run the build with maven do this outside of the container using following 
mvn command:
 
-```
-mvn install -Pdocker
-```
+    mvn install -Pdocker
+
+    
+- Then check in directory  target/docker-resources the file docker-compose.yml 
e.g. with
+
+    docker compose config
+
+## Optional Integration Test (not tested)
+
+    mvn integration-test 
 
 N.B.: This builds the integrationtest project in 
target/test-classes/projects/first/project/integrationtest with docker enabled 
configuration. 
 Running the build inside the container is not required and may be problematic, 
unless you use only public available dependencies.
@@ -45,12 +54,14 @@ N.B. You may use the command *docker compose* or 
*docker-compose*, but will slig
 
 - Check database service call in ** 
target/<projectname>/WEB-INF/jetty-env.xml**. It should reference the service 
name (db), not localhost - as it is also set in maven docker profile.
 
-- To change velocity templates check webapp in ** src/main/webapp**. 
 
 ```xml
 <Set name="url">jdbc:mysql://db:3306/turbine</Set>
 ```
 
+
+- To change velocity templates check webapp in ** src/main/webapp**.  Ohter 
resources might depend on 
https://www.eclipse.org/jetty/documentation/jetty-9/index.html#jars-scanned-for-annotations.
+
 ## Cleanup or restart (optional)
 
 - Optionally Check system or cleanup, e.g. with docker-compose down, 
docker-compose down -v or docker sytem prune (removes any container on system).
@@ -90,6 +101,8 @@ N.B. You may use the command *docker compose* or 
*docker-compose*, but will slig
 - Starting the app service will build the app and start jetty with Maven on 
port 8081. 
 This command is set as a **command** in the app service in docker compose. 
 
+Currently the docker-compose is generated once more, if starting the 
containers, this will overwrite m2repo and may result in errors.
+
 If not yet done, build on the host with mvn clean install -f ../pom.xml 
-Pdocker.
 
 ### Build Services
@@ -97,8 +110,13 @@ If not yet done, build on the host with mvn clean install 
-f ../pom.xml -Pdocker
 The app service uses later a volume, which maps to the local maven repository, 
which you may need/not need.
 The db service uses mysql-latest (currently 8.x), you may replace it with a 
fixed release tag.
 
+If previously build, you may want to delete all volumes and containers
+
+    docker-compose down -v
+
  - Build it
  
+ 
 ```sh
     docker-compose build --no-cache
 ```
diff --git a/src/main/resources/archetype-resources/docs/README.md 
b/src/main/resources/archetype-resources/docs/README.md
index 808c903..01217d3 100644
--- a/src/main/resources/archetype-resources/docs/README.md
+++ b/src/main/resources/archetype-resources/docs/README.md
@@ -28,7 +28,7 @@ Turbine Version: Turbine 5.1.
 
 ### Docker Setup
 
-See DOCKER-README.md
+Skip Local Database setup and read later DOCKER-README.md
 
 ### Local database Setup
 
@@ -67,6 +67,30 @@ mvn archetype:generate \
   -Dgoals=generate-sources,integration-test
 ```
 
+#### Docker integration (short intro)
+
+N.B. Add  
+
+    -Dturbine_database_url=jdbc:mysql://db:3306/ \
+    -Ddocker=true
+    
+to immediately enable docker setup, when generating the archetype. 
+
+Currently only port 3306 is supported, if you do not want ot change the port 
seetings for the db container in docker-compose.yml
+ 
+You then need not to follow the following chapters, but could immediately go 
to 
+
+    cd <project>/target/docker-resources
+    
+and then follow the instructions in DOCKER-README.md. In short you may do the 
following:
+ 
+    docker compose configurable
+    docker compose build --no-cache
+    docker compose up
+    
+ - Now you can launch your new Turbine application by default 
[http://localhost:8081/app] 
+ 
+
 ### Development
 
 You may use 
diff --git a/src/main/resources/archetype-resources/pom.xml 
b/src/main/resources/archetype-resources/pom.xml
index 100afa5..4a79ce1 100644
--- a/src/main/resources/archetype-resources/pom.xml
+++ b/src/main/resources/archetype-resources/pom.xml
@@ -401,9 +401,8 @@ under the License.
         <torque.version>5.1-SNAPSHOT</torque.version>
          <turbine.core>5.1-SNAPSHOT</turbine.core>     
         <!--
-             <torque.version>5.0</torque.version>
+            <torque.version>5.0</torque.version>
             <turbine.core>5.0</turbine.core>
-        
             <torque.version>5.1-SNAPSHOT</torque.version>
            <turbine.core>5.1-SNAPSHOT</turbine.core>
                         
@@ -438,6 +437,16 @@ under the License.
                             </webApp> 
                         </configuration>
                     </plugin>
+                    <!-- aswe call this profile in 
docker-resources/docker-compose.yml for app, which will replace /m2repo, 
+                    we want to avoid a second parsing from inside the 
container -->
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-resources-plugin</artifactId>
+                        <version>3.2.0</version>
+                        <configuration>
+                          <skip>true</skip>
+                        </configuration>
+                      </plugin>
                 </plugins>
             </build>
         </profile>
@@ -485,7 +494,7 @@ under the License.
                  </plugins>
               </build>
             <properties>
-                
<turbine_database_url>jdbc:mysql://db:3306/</turbine_database_url>
+                
<turbine_database_url>${turbine_database_url}</turbine_database_url>
                 <!-- read from #var("settings.localRepository") to provide 
e.g. local snapshot builds -->
                 
<app_volume_local_repo>${settings.localRepository}</app_volume_local_repo>
                 <docker>true</docker>
diff --git 
a/src/main/resources/archetype-resources/src/main/docker-resources/docker-compose.yml
 
b/src/main/resources/archetype-resources/src/main/docker-resources/docker-compose.yml
index 89fb5e8..8d595a7 100644
--- 
a/src/main/resources/archetype-resources/src/main/docker-resources/docker-compose.yml
+++ 
b/src/main/resources/archetype-resources/src/main/docker-resources/docker-compose.yml
@@ -11,8 +11,7 @@ services:
     environment:
         - MAVEN_OPTS=-Xdebug -Xnoagent 
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9000
     
-    # this runs the app server in the container
-    #command: mvn clean package jetty:run -Pdocker
+    # this runs the app server in the container, be sure not to filter 
resources once again!
     command: mvn -Pjetty
     ports:
       - "8081:8081"
@@ -39,22 +38,20 @@ services:
       dockerfile: ./docker-resources/db/Dockerfile
       args:
         - DB_CONTEXT=./docker-resources/db
-        - MYSQL_DATABASE=turbine
-        #- MYSQL_ROOT_PASSWORD=default
-        - MYSQL_RANDOM_ROOT_PASSWORD=yes
-        - MYSQL_USER=db_user
-        - MYSQL_PASSWORD=db_password
-        - MYSQL_ONETIME_PASSWORD=false
+        - MYSQL_DATABASE=${turbine_database_name}
+        - MYSQL_ROOT_PASSWORD=changeit
+        - MYSQL_RANDOM_ROOT_PASSWORD=
+        - MYSQL_USER=${turbine_database_user}
+        - MYSQL_PASSWORD=${turbine_database_password}
     
     environment:
-      - MYSQL_DATABASE=turbine
+      - MYSQL_DATABASE=${turbine_database_name}
       - MYSQL_HOST= 
-      #- MYSQL_ROOT_PASSWORD=default
-      - MYSQL_RANDOM_ROOT_PASSWORD=yes
-      - MYSQL_USER=db_user
-      - MYSQL_PASSWORD=db_password
+      - MYSQL_ROOT_PASSWORD=changeit
+      - MYSQL_RANDOM_ROOT_PASSWORD=
+      - MYSQL_USER=${turbine_database_user}
+      - MYSQL_PASSWORD=${turbine_database_password}
       - DB_CONTEXT=./docker-resources/db
-      - MYSQL_ONETIME_PASSWORD=false
       #- MYSQL_ALLOW_EMPTY_PASSWORD=yes
       
     volumes:
@@ -62,8 +59,8 @@ services:
       - "/db/mysql/conf:/etc/mysql/conf.d"
       - "./db/mysql/data:/data" 
       # default mysql persistent data
-      - mysql_log:/mysql/log:rw 
-      - db_data:/var/lib/mysql:rw  
+      - mysql_log_${turbine_database_name}:/mysql/log:rw 
+      - db_data_${turbine_database_name}:/var/lib/mysql:rw  
     restart: always     
     ports:
       # host: container
@@ -75,8 +72,8 @@ services:
     command: --default-authentication-plugin=mysql_native_password
 
 volumes:
-  db_data:
-  mysql_log:
+  db_data_${turbine_database_name}:
+  mysql_log_${turbine_database_name}:
   
 #networks:
 #  db:
diff --git 
a/src/main/resources/archetype-resources/src/test/resources/log4j.properties 
b/src/main/resources/archetype-resources/src/test/resources/log4j.properties
deleted file mode 100644
index 651c914..0000000
--- a/src/main/resources/archetype-resources/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,89 +0,0 @@
-
-# Turbine logging configuration
-#
-# If we don't know the logging facility, put it into the
-# turbine.log
-#
-log4j.rootLogger = INFO, app, console
-
-
-log4j.logger.${package} = DEBUG, app, console
-log4j.additivity.${package} = false
-
-#
-# Avalon log
-#
-log4j.logger.avalon = DEBUG, app, console
-log4j.additivity.avalon = false
-
-
-#
-# sql log
-# allows TRACE
-log4j.logger.org.apache.torque.util = DEBUG, sql, console
-log4j.additivity.org.apache.torque.util = false
-
-#
-# Torque log
-# allows TRACE
-log4j.logger.org.apache.torque = DEBUG, torque
-log4j.additivity.org.apache.torque = false
-
-# turbine log
-# allows TRACE
-log4j.logger.org.apache.turbine = INFO, turbine
-log4j.additivity.org.apache.turbine = false
-
-
-# #
-# Logfile definitions
-#
-
-# application.log
-log4j.appender.app = org.apache.log4j.RollingFileAppender
-log4j.appender.app.file = src/test/logs/application.log
-log4j.appender.app.MaxFileSize=5MB
-log4j.appender.app.MaxBackupIndex=5
-log4j.appender.app.layout = org.apache.log4j.PatternLayout
-log4j.appender.app.layout.conversionPattern = %d [%t] %-5p %c - %m%n
-log4j.appender.app.append = true
-
-#
-# sql.log
-#
-log4j.appender.sql = org.apache.log4j.RollingFileAppender
-log4j.appender.sql.file = src/test/logs/sql.log
-log4j.appender.sql.MaxFileSize=5MB
-log4j.appender.sql.MaxBackupIndex=5
-log4j.appender.sql.layout = org.apache.log4j.PatternLayout
-log4j.appender.sql.layout.conversionPattern = %d [%t] %-5p %c - %m%n
-log4j.appender.sql.append = true
-
-#
-# console
-#
-log4j.appender.console = org.apache.log4j.ConsoleAppender
-log4j.appender.console.layout = org.apache.log4j.PatternLayout
-log4j.appender.console.layout.conversionPattern = %d [%t] %-5p %C{1} - %m%n
-
-#
-# torque.log
-#
-log4j.appender.torque = org.apache.log4j.RollingFileAppender
-log4j.appender.torque.MaxFileSize=5MB
-log4j.appender.torque.MaxBackupIndex=5
-log4j.appender.torque.file = src/test/logs/torque.log
-log4j.appender.torque.layout = org.apache.log4j.PatternLayout
-log4j.appender.torque.layout.conversionPattern = %d [%t] %-5p %c - %m%n
-log4j.appender.torque.append = false
-
-#
-# turbine.log
-#
-log4j.appender.turbine = org.apache.log4j.RollingFileAppender
-log4j.appender.turbine.MaxFileSize=5MB
-log4j.appender.turbine.MaxBackupIndex=5
-log4j.appender.turbine.file = src/test/logs/turbine.log
-log4j.appender.turbine.layout = org.apache.log4j.PatternLayout
-log4j.appender.turbine.layout.conversionPattern = %d [%t] %-5p %c - %m%n
-log4j.appender.turbine.append = false
\ No newline at end of file
diff --git 
a/src/main/resources/archetype-resources/src/test/resources/log4j.xml 
b/src/main/resources/archetype-resources/src/test/resources/log4j.xml
new file mode 100644
index 0000000..4c9e0f0
--- /dev/null
+++ b/src/main/resources/archetype-resources/src/test/resources/log4j.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<Configuration >
+    <Appenders>
+        <Console name="console" target="SYSTEM_OUT">
+             <PatternLayout pattern="%d [%t] %-5p %c - %m%n"/>
+           </Console>
+           <File name="avalon" fileName="./target/avalon.log">
+             <PatternLayout pattern="%d [%t] %-5p %c - %m%n"/>
+           </File>
+            <File name="torque" fileName="./target/torque.log">
+          <PatternLayout pattern="%d [%t] %-5p %c - %m%n"/>
+        </File>
+         <File name="turbine" fileName="./target/turbine.log">
+          <PatternLayout pattern="%d [%t] %-5p %c - %m%n"/>
+        </File>
+          <File name="velocity" fileName="./target/velocity.log">
+          <PatternLayout pattern="%d [%t] %-5p %c - %m%n"/>
+        </File>
+    </Appenders>
+    <Loggers>
+            <Logger name="avalon" level="info" additivity="false">
+             <AppenderRef ref="avalon"/>
+           </Logger>
+            <Logger name="org.apache.torque" level="info" additivity="false">
+          <AppenderRef ref="torque"/>
+        </Logger>
+         <Logger name="scheduler" level="info" additivity="false">
+          <AppenderRef ref="scheduler"/>
+        </Logger>
+        <Logger name="org.apache.turbine" level="info" additivity="false">
+          <AppenderRef ref="turbine"/>
+          <AppenderRef ref="console"/>
+        </Logger>
+           <Root level="info">
+             <AppenderRef ref="turbine"/>
+           </Root>
+    </Loggers>
+</Configuration>
\ No newline at end of file
diff --git a/src/test/resources/projects/first/archetype.properties 
b/src/test/resources/projects/first/archetype.properties
index 1d7a742..a6065d1 100644
--- a/src/test/resources/projects/first/archetype.properties
+++ b/src/test/resources/projects/first/archetype.properties
@@ -13,3 +13,4 @@ turbine_database_url=${turbine_database_url}
 turbine_database_user=db_user
 turbine_database_password=db_password
 app_volume_local_repo=${app_volume_local_repo}
+docker=${docker}

Reply via email to