| <?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. |
| *# |
| #set($dollar = '$') |
| #macro (var $label)${dollar}{${label}}#end |
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> |
| |
| <modelVersion>4.0.0</modelVersion> |
| <groupId>${package}</groupId> |
| <artifactId>${artifactId}</artifactId> |
| <version>${version}</version> |
| <packaging>war</packaging> |
| |
| <name>${turbine_app_name}</name> |
| |
| <build> |
| <resources> |
| <resource> |
| <directory>src/main/java</directory> |
| <includes> |
| <include>**/*.properties</include> |
| <include>**/*.xml</include> |
| </includes> |
| </resource> |
| <resource> |
| <directory>src/main/resources</directory> |
| <filtering>true</filtering> |
| <includes> |
| <include>**/*.properties</include> |
| <include>**/*.xml</include> |
| </includes> |
| </resource> |
| <!-- (target) resource and filtering is not used at all ? |
| at least removed setting absolute path e.g. with #var("project.build.directory"), |
| which does thrown an exception with mvn eclipse:eclipse - path is then incorrectly relativized. |
| "Can't canonicalize system path" |
| --> |
| <resource> |
| <directory>src/main/docker-resources</directory> |
| <filtering>true</filtering> |
| <includes> |
| <include>**/*</include> |
| </includes> |
| <targetPath>../docker-resources</targetPath> |
| </resource> |
| <resource> |
| <directory>src/main/data</directory> |
| <includes> |
| <include>**/*</include> |
| </includes> |
| <targetPath>../data</targetPath> |
| </resource> |
| <resource> |
| <targetPath>../torque/schema</targetPath> |
| <filtering>true</filtering> |
| <directory>src/main/torque-schema</directory> |
| <includes> |
| <include>*.xml</include> |
| </includes> |
| </resource> |
| </resources> |
| <testSourceDirectory>src/test/java</testSourceDirectory> |
| <testResources> |
| <testResource> |
| <directory>src/test/resources</directory> |
| <includes> |
| <include>*.xml</include> |
| <include>*.properties</include> |
| </includes> |
| </testResource> |
| </testResources> |
| <plugins> |
| <!-- test will not fail in turbine 4.0.1 --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>3.0.0-M2</version> |
| <configuration> |
| <skipTests>#var("skipTests")</skipTests> |
| <!--default setting is forkCount=1/reuseForks=true --> |
| <reuseForks>false</reuseForks> |
| <forkCount>1</forkCount> |
| </configuration> |
| </plugin> |
| <plugin> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <version>3.8.1</version> |
| <configuration> |
| <source>#var("maven.compile.source")</source> |
| <target>#var("maven.compile.target")</target> |
| <encoding>#var("project.build.sourceEncoding")</encoding> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.torque</groupId> |
| <artifactId>torque-maven-plugin</artifactId> |
| <version>#var("torque.version")</version> |
| <configuration> |
| <schemaDir>#var("project.basedir")/src/main/torque-schema</schemaDir> |
| <useClasspath>true</useClasspath> |
| <runOnlyOnSchemaChange>false</runOnlyOnSchemaChange> |
| <targetDatabase>${turbine_database_adapter}</targetDatabase> |
| </configuration> |
| <executions> |
| <execution> |
| <id>torque-om</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| <configuration> |
| <packaging>classpath</packaging> |
| <configPackage>org.apache.torque.templates.om</configPackage> |
| <sourceDir>#var("project.basedir")/src/main/torque-schema</sourceDir> |
| <loglevel>error</loglevel> |
| <options> |
| <torque.database>${turbine_database_adapter}</torque.database> |
| <torque.om.package>${package}.om</torque.om.package> |
| <torque.om.addGetByNameMethods>false</torque.om.addGetByNameMethods> |
| <torque.om.save.saveException>TorqueException</torque.om.save.saveException> |
| <torque.om.useIsForBooleanGetters>true</torque.om.useIsForBooleanGetters> |
| <torque.om.useManagers>false</torque.om.useManagers> |
| <torque.om.addTimeStamp>true</torque.om.addTimeStamp> |
| <torque.om.objectIsCaching>true</torque.om.objectIsCaching> |
| <torque.om.save.addSaveMethods>true</torque.om.save.addSaveMethods> |
| <torque.om.addGetByNameMethods>true</torque.om.addGetByNameMethods> |
| <torque.om.complexObjectModel>true</torque.om.complexObjectModel> |
| </options> |
| <!-- keeping defaultOutputDir in default ${project.build.directory}/generated-sources will havee the base classes there --> |
| <!-- we want the classes, which may be custumoized in the source directory. Ignore the warning about generated-java --> |
| <outputDirMap> |
| <modifiable>#var("project.build.sourceDirectory")</modifiable> |
| </outputDirMap> |
| </configuration> |
| </execution> |
| <execution> |
| <id>torque-sql-mysql</id><!-- ${turbine_database_adapter} --> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| <configuration> |
| <packaging>classpath</packaging> |
| <configPackage>org.apache.torque.templates.sql</configPackage> |
| <sourceDir>#var("project.basedir")/src/main/torque-schema</sourceDir> |
| <defaultOutputDir>#var("project.build.directory")/generated-sql/torque/mysql</defaultOutputDir> |
| <defaultOutputDirUsage>none</defaultOutputDirUsage> |
| <loglevel>error</loglevel> |
| <options> |
| <torque.database>mysql</torque.database> |
| </options> |
| </configuration> |
| </execution> |
| </executions> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.torque</groupId> |
| <artifactId>torque-templates</artifactId> |
| <version>#var("torque.version")</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-war-plugin</artifactId> |
| <version>3.2.2</version> |
| <configuration> |
| <archive> |
| <manifestEntries> |
| <X-Compile-Source-JDK>#var("maven.compile.source")</X-Compile-Source-JDK> |
| <X-Compile-Target-JDK>#var("maven.compile.target")</X-Compile-Target-JDK> |
| </manifestEntries> |
| </archive> |
| <webResources> |
| <resource> |
| <directory>#var("project.basedir")/src/main/webapp/WEB-INF</directory> |
| <filtering>true</filtering> |
| <targetPath>WEB-INF</targetPath> |
| <includes> |
| <include>jetty-env.xml</include> |
| </includes> |
| </resource> |
| </webResources> |
| <!-- containerConfigXML>WEB-INF/build/context.xml</containerConfigXML --> |
| </configuration> |
| </plugin> |
| <!-- Required to execute torque database build --> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>sql-maven-plugin</artifactId> |
| <version>1.5</version> |
| <configuration> |
| <!-- Please update with your database configuration --> |
| <driver>${turbine_database_driver}</driver> |
| |
| <!-- The serverTimezone parameter is required for MySQL. |
| You may need to remove it for other databases --> |
| <url>#var("turbine_database_url")${turbine_database_name}?serverTimezone=${turbine_database_timezone}&useSSL=false&verifyServerCertificate=false&requireSSL=false</url> |
| <username>${turbine_database_user}</username> |
| <password>${turbine_database_password}</password> |
| <onError>continue</onError> |
| <autocommit>true</autocommit> |
| <orderFile>descending</orderFile> |
| </configuration> |
| <!-- update with your database driver dependency --> |
| <!-- this is mysql specific --> |
| <dependencies> |
| <dependency> |
| <artifactId>mysql-connector-java</artifactId> |
| <groupId>mysql</groupId> |
| <version>#var("mysql.version")</version> |
| </dependency> |
| </dependencies> |
| <!-- this is mysql specific --> |
| <executions> |
| <execution> |
| <id>create-db</id> |
| <phase>pre-integration-test</phase> |
| <goals> |
| <goal>execute</goal> |
| </goals> |
| <configuration> |
| <skip>${docker}</skip> |
| <orderFile>ascending</orderFile> |
| <fileset> |
| <basedir>#var("project.build.directory")/generated-sql/torque/mysql</basedir> |
| <!-- basedir>${basedir}/target/generated-sql</basedir --> |
| <includes> |
| <include>*.sql</include> |
| </includes> |
| </fileset> |
| </configuration> |
| </execution> |
| <execution> |
| <id>create-data</id> |
| <phase>pre-integration-test</phase> |
| <goals> |
| <goal>execute</goal> |
| </goals> |
| <configuration> |
| <skip>${docker}</skip> |
| <orderFile>ascending</orderFile> |
| <srcFiles> |
| <srcFile>#var("project.basedir")/docs/sample-mysql-data/_application-data.sql</srcFile> |
| <srcFile>#var("project.basedir")/docs/sample-mysql-data/_turbine-security-data.sql</srcFile> |
| </srcFiles> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| |
| <dependencies> |
| <dependency> |
| <groupId>jakarta.xml.bind</groupId> |
| <artifactId>jakarta.xml.bind-api</artifactId> |
| <version>2.3.3</version> |
| </dependency> |
| <!-- update with the database driver of your choice --> |
| <dependency> |
| <artifactId>mysql-connector-java</artifactId> |
| <groupId>mysql</groupId> |
| <version>#var("mysql.version")</version> |
| </dependency> |
| <!-- Allow lookup of #var("web:rootDir") in log4j2 file --> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-web</artifactId> |
| <version>#var("log4j2.version")</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-api</artifactId> |
| <version>${log4j2.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>javax.servlet</groupId> |
| <artifactId>javax.servlet-api</artifactId> |
| <version>3.1.0</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.turbine</groupId> |
| <artifactId>turbine</artifactId> |
| <version>#var("turbine.core")</version> |
| <!-- should be resolved after upgrade to torque-4.1 --> |
| <exclusions> |
| <!--exclusion> |
| <groupId>org.apache.fulcrum</groupId> |
| <artifactId>fulcrum-quartz</artifactId> |
| </exclusion--> |
| <exclusion> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-email</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.fulcrum</groupId> |
| <artifactId>fulcrum-yaafi</artifactId> |
| <version>#var("fulcrum.yaafi")</version> |
| </dependency> |
| <!-- if using intake --> |
| <dependency> |
| <groupId>org.apache.fulcrum</groupId> |
| <artifactId>fulcrum-intake</artifactId> |
| <version>#var("fulcrum.intake")</version> |
| </dependency> |
| <!-- include some optional dependencies required in example componentConfiguration.xml --> |
| |
| <dependency> |
| <groupId>org.apache.fulcrum</groupId> |
| <artifactId>fulcrum-cache</artifactId> |
| <version>#var("fulcrum.cache")</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.fulcrum</groupId> |
| <artifactId>fulcrum-security-memory</artifactId> |
| <version>#var("fulcrum.security")</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.fulcrum</groupId> |
| <artifactId>fulcrum-security-torque</artifactId> |
| <version>#var("fulcrum.security")</version> |
| <exclusions> |
| <exclusion><!-- will we mapped in jcl-over-slf4j --> |
| <groupId>commons-logging</groupId> |
| <artifactId>commons-logging</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.fulcrum</groupId> |
| <artifactId>fulcrum-security-api</artifactId> |
| <version>#var("fulcrum.security")</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.fulcrum</groupId> |
| <artifactId>fulcrum-json-jackson2</artifactId> |
| <version>#var("fulcrum.json")</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.datatype</groupId> |
| <artifactId>jackson-datatype-json-org</artifactId> |
| <!-- version>${jackson.version}</version--> |
| <!-- https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.11.3 --> |
| <version>2.11.3</version> |
| </dependency> |
| <!-- if activating useJsonPath include jayway dependency --> |
| <!-- dependency> |
| <groupId>com.jayway.jsonpath</groupId> |
| <artifactId>json-path</artifactId> |
| <version>2.4.0</version> |
| <exclusions> |
| <exclusion> |
| <groupId>net.minidev</groupId> |
| <artifactId>json-smart</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency--> |
| |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <version>4.13.1</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.fulcrum</groupId> |
| <artifactId>fulcrum-testcontainer</artifactId> |
| <version>#var("fulcrum.testcontainer")</version> |
| <scope>test</scope> |
| </dependency> |
| </dependencies> |
| |
| <properties> |
| <maven.compile.source>1.8</maven.compile.source> |
| <maven.compile.target>1.8</maven.compile.target> |
| <project.build.sourceEncoding>utf-8</project.build.sourceEncoding> |
| <log4j2.version>2.14.1</log4j2.version> |
| <mysql.version>8.0.25</mysql.version> |
| <fulcrum.json>2.0.1</fulcrum.json> |
| <fulcrum.intake>2.0.0</fulcrum.intake> |
| <fulcrum.security>2.0.1-SNAPSHOT</fulcrum.security> |
| <fulcrum.yaafi>1.0.8</fulcrum.yaafi> |
| <fulcrum.cache>2.0.0</fulcrum.cache> |
| <fulcrum.testcontainer>1.0.9</fulcrum.testcontainer> |
| <torque.version>5.1-SNAPSHOT</torque.version> |
| <turbine.core>5.1-SNAPSHOT</turbine.core> |
| <!-- |
| <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> |
| |
| <fulcrum.intake>2.0.1-SNAPSHOT</fulcrum.intake> |
| <fulcrum.security>2.0.0-SNAPSHOT</fulcrum.security> |
| --> |
| <skipTests>true</skipTests> |
| <docker>false</docker> |
| <turbine_database_url>${turbine_database_url}</turbine_database_url> |
| <app_volume_local_repo>NOT_USED</app_volume_local_repo> |
| </properties> |
| |
| <profiles> |
| <profile> |
| <id>jetty</id> |
| <build> |
| <defaultGoal>jetty:run</defaultGoal> |
| <plugins> |
| <plugin> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-maven-plugin</artifactId> |
| <version>9.4.43.v20210629</version> |
| <configuration> |
| <!-- https://www.eclipse.org/jetty/documentation/jetty-9/index.html#jars-scanned-for-annotations --> |
| <scanIntervalSeconds>10</scanIntervalSeconds> |
| <httpConnector> |
| <port>8081</port> |
| <idleTimeout>60000</idleTimeout> |
| </httpConnector> |
| <webApp> |
| <jettyEnvXml>${project.build.directory}/${project.build.finalName}/WEB-INF/jetty-env.xml</jettyEnvXml> |
| </webApp> |
| </configuration> |
| </plugin> |
| <!-- we call this profile in docker-resources/docker-compose.yml for app, |
| which should not 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> |
| <profile> |
| <id>tomcat</id> |
| <build> |
| <defaultGoal>tomcat:run</defaultGoal> |
| <finalName>${artifactId}</finalName> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>tomcat-maven-plugin</artifactId> |
| <configuration> |
| <port>15000</port> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>docker</id> |
| <activation> |
| <activeByDefault>${docker}</activeByDefault> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>sql-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>create-db</id> |
| <configuration> |
| <skip>true</skip> |
| </configuration> |
| </execution> |
| <execution> |
| <id>create-data</id> |
| <configuration> |
| <skip>true</skip> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| <properties> |
| <!-- hard code docker compose service id and port by default --> |
| <turbine_database_url>jdbc:mysql://db:3306/</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> |
| </properties> |
| </profile> |
| </profiles> |
| |
| </project> |