blob: 296658a0885f0d7c522e541d03d6eb5d9d6c5bb3 [file] [log] [blame]
<?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.
-->
<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>
<parent>
<groupId>org.apache.openmeetings</groupId>
<artifactId>openmeetings-parent</artifactId>
<version>8.0.0-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>openmeetings-web</artifactId>
<packaging>war</packaging>
<name>Openmeetings Web</name>
<description>Module for all Wicket based UI OpenMeetings components</description>
<properties>
<old-backups.dir>${project.build.directory}/test-data</old-backups.dir>
<site.basedir>${project.parent.basedir}</site.basedir>
</properties>
<profiles>
<profile>
<id>mysql</id>
<properties>
<db>mysql</db>
<db_user>om_db_admin</db_user>
<db_pass>12345</db_pass>
</properties>
<dependencies>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
</dependencies>
</profile>
<profile>
<id>mssql</id>
<properties>
<db>mssql</db>
<db_user>sa</db_user>
<db_pass>ass</db_pass>
</properties>
</profile>
<profile>
<id>oracle</id>
<properties>
<db>oracle</db>
<db_user>system</db_user>
<db_pass>openmeetings_test</db_pass>
</properties>
</profile>
</profiles>
<build>
<plugins>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<executions>
<execution>
<id>install-node</id>
<goals><goal>install-node-and-npm</goal></goals>
</execution>
<execution>
<id>npm-install</id>
<goals><goal>npm</goal></goals>
<configuration>
<workingDirectory>src/main/front</workingDirectory>
</configuration>
</execution>
<execution>
<id>js</id>
<goals><goal>npm</goal></goals>
<configuration>
<arguments>run build</arguments>
<workingDirectory>src/main/front</workingDirectory>
<environmentVariables>
<outDir>${project.build.directory}/${project.build.finalName}/</outDir>
</environmentVariables>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.samaxes.maven</groupId>
<artifactId>minify-maven-plugin</artifactId>
<executions>
<execution>
<id>nettest-js</id>
<goals>
<goal>minify</goal>
</goals>
<configuration>
<charset>UTF-8</charset>
<jsSourceDir>../java/org/apache/openmeetings/web/room</jsSourceDir>
<jsSourceFiles>
<jsSourceFile>raw-nettest.js</jsSourceFile>
</jsSourceFiles>
<jsFinalFile>nettest.js</jsFinalFile>
<jsEngine>CLOSURE</jsEngine>
<jsTargetDir>../generated-sources/js/org/apache/openmeetings/web/room</jsTargetDir>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archiveClasses>true</archiveClasses>
<packagingExcludes>
**/*.class,
**/raw-*.css,
**/raw-*.js,
</packagingExcludes>
<warSourceExcludes>
**/raw-*.css,
**/raw-*.js,
</warSourceExcludes>
<filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
<webResources>
<webResource>
<directory>${project.basedir}/src/main/java</directory>
<targetPath>WEB-INF/classes</targetPath>
<includes>
<include>**/*.html</include>
<include>**/*.css</include>
<include>**/*.js</include>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<excludes>
<exclude>**/raw-*.js</exclude>
</excludes>
</webResource>
<webResource>
<directory>${project.parent.basedir}/openmeetings-service/src/main/java</directory>
<targetPath>WEB-INF/classes</targetPath>
<includes>
<include>**/*.html</include>
<include>**/*.css</include>
<include>**/*.js</include>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</webResource>
<webResource>
<directory>${project.build.directory}/generated-res</directory>
<targetPath>WEB-INF/classes/META-INF</targetPath>
<filtering>true</filtering>
</webResource>
<webResource>
<directory>${project.build.directory}/generated-sources/js/</directory>
<targetPath>WEB-INF/classes</targetPath>
</webResource>
</webResources>
</configuration>
<executions>
<execution>
<id>create-war</id>
<phase>prepare-package</phase>
<goals>
<goal>exploded</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-test-backups</id>
<phase>generate-test-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${old-backups.dir}</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>org.apache.openmeetings</groupId>
<artifactId>test-backup</artifactId>
<version>3.3.0</version>
<type>zip</type>
</artifactItem>
<artifactItem>
<groupId>org.apache.openmeetings</groupId>
<artifactId>test-backup</artifactId>
<version>4.0.4</version>
<type>zip</type>
</artifactItem>
<artifactItem>
<groupId>org.apache.openmeetings</groupId>
<artifactId>test-backup</artifactId>
<version>4.0.10</version>
<type>zip</type>
</artifactItem>
</artifactItems>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>false</overWriteIfNewer>
</configuration>
</execution>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<excludeTransitive>true</excludeTransitive>
<skip>${om.quick.build}</skip>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>prepare-test-resources</id>
<phase>process-test-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<overwrite>true</overwrite>
<outputDirectory>${project.build.directory}/test-root</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/webapp</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/raw-*.css</exclude>
<exclude>**/raw-*.js</exclude>
</excludes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-test-web-templates</id>
<phase>process-test-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<overwrite>true</overwrite>
<outputDirectory>${project.build.directory}/test-root/WEB-INF/classes/</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/java</directory>
<includes>
<include>**/*.html</include>
<include>**/*.css</include>
<include>**/*.js</include>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<excludes>
<exclude>**/raw-*.css</exclude>
<exclude>**/raw-*.js</exclude>
</excludes>
</resource>
<resource>
<directory>${project.parent.basedir}/openmeetings-service/src/main/java</directory>
<includes>
<include>**/*.html</include>
<include>**/*.css</include>
<include>**/*.js</include>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
<skip>${om.quick.build}</skip>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>select-db</id>
<phase>generate-resources</phase>
<configuration>
<target>
<copy file="${project.basedir}/src/main/webapp/WEB-INF/classes/META-INF/${db}_persistence.xml"
tofile="${project.build.directory}/generated-res/persistence.xml"
overwrite="true" force="true"/>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<execution>
<id>test-db</id>
<phase>generate-test-resources</phase>
<configuration>
<target>
<copy file="${project.basedir}/src/main/webapp/WEB-INF/classes/META-INF/h2_persistence.xml"
tofile="${project.build.directory}/test-root/WEB-INF/classes/META-INF/persistence.xml"
overwrite="true" force="true"/>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId><!-- maybe integration tests should be used -->
<inherited>true</inherited>
<configuration>
<workingDirectory>${project.build.directory}</workingDirectory>
<systemPropertyVariables>
<om.home>${project.build.directory}/test-root</om.home>
<languages.home>${project.build.directory}/test-root/languages</languages.home>
<backups.dir>${old-backups.dir}</backups.dir>
<catalina.useNaming>true</catalina.useNaming>
<current_openmeetings_log_dir>${project.build.directory}</current_openmeetings_log_dir>
<current_openmeetings_context_name>openmeetings</current_openmeetings_context_name>
</systemPropertyVariables>
<additionalClasspathElements>
<additionalClasspathElement>${project.build.directory}/test-root/WEB-INF/classes</additionalClasspathElement>
</additionalClasspathElements>
<skip>${maven.test.skip}</skip>
</configuration>
<executions>
<execution>
<id>default-test</id>
<configuration>
<groups>regular</groups>
</configuration>
</execution>
<execution>
<id>isolated-test</id>
<goals><goal>test</goal></goals>
<configuration>
<reuseForks>false</reuseForks>
<groups>isolated</groups>
</configuration>
</execution>
<execution>
<id>webservice-test</id>
<goals><goal>test</goal></goals>
<configuration>
<groups>webservice</groups>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.openmeetings</groupId>
<artifactId>openmeetings-install</artifactId>
</dependency>
<dependency>
<groupId>org.apache.openmeetings</groupId>
<artifactId>openmeetings-mediaserver</artifactId>
</dependency>
<dependency>
<groupId>org.apache.openmeetings</groupId>
<artifactId>openmeetings-webservice</artifactId>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jasny-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
</dependency>
<dependency>
<groupId>org.wicketstuff</groupId>
<artifactId>wicketstuff-dashboard-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-auth-roles</artifactId>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-native-websocket-javax</artifactId>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-devutils</artifactId>
</dependency>
<dependency>
<groupId>com.googlecode.wicket-jquery-ui</groupId>
<artifactId>wicket-jquery-ui-core</artifactId>
</dependency>
<dependency>
<groupId>com.googlecode.wicket-jquery-ui</groupId>
<artifactId>wicket-jquery-ui</artifactId>
</dependency>
<dependency>
<groupId>com.googlecode.wicket-jquery-ui</groupId>
<artifactId>wicket-jquery-ui-calendar</artifactId>
</dependency>
<dependency>
<groupId>com.googlecode.wicket-jquery-ui</groupId>
<artifactId>wicket-jquery-ui-plugins</artifactId>
</dependency>
<dependency>
<groupId>org.wicketstuff</groupId>
<artifactId>wicketstuff-urlfragment</artifactId>
</dependency>
<dependency>
<groupId>org.wicketstuff</groupId>
<artifactId>wicketstuff-select2</artifactId>
</dependency>
<dependency>
<groupId>org.wicketstuff</groupId>
<artifactId>jqplot</artifactId>
</dependency>
<dependency>
<groupId>de.agilecoders.wicket</groupId>
<artifactId>wicket-bootstrap-extensions</artifactId>
</dependency>
<dependency>
<groupId>de.agilecoders.wicket</groupId>
<artifactId>wicket-bootstrap-themes</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery-ui-touch-punch</artifactId>
</dependency>
<dependency>
<groupId>dev.samstevens.totp</groupId>
<artifactId>totp</artifactId>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
</dependency>
<!-- Test dependencies -->
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-tester</artifactId>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-native-websocket-tester</artifactId>
</dependency>
<dependency>
<groupId>org.apache.openmeetings</groupId>
<artifactId>openmeetings-tests</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-client</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
</dependency>
<dependency>
<groupId>jakarta.websocket</groupId>
<artifactId>jakarta.websocket-client-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.apache.directory.server</groupId>
<artifactId>apacheds-test-framework</artifactId>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-inline</artifactId>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>prometheus-metrics-exporter-servlet-jakarta</artifactId>
</dependency>
</dependencies>
</project>