<?xml version="1.0"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.opencastproject</groupId>
  <artifactId>base</artifactId>
  <version>12.13</version>
  <packaging>pom</packaging>
  <name>opencast</name>
  <description>Opencast is a media capture, processing, management and distribution system</description>
  <url>https://opencast.org</url>
  <inceptionYear>2009</inceptionYear>
  <properties>
    <checkstyle.skip>false</checkstyle.skip>
    <opencast.basedir>${basedir}</opencast.basedir>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <!-- library version specifications -->
    <aws.version>1.12.269_1</aws.version>
    <commons-codec.version>1.15</commons-codec.version>
    <commons-collections.version>4.4</commons-collections.version>
    <commons-compress.version>1.21</commons-compress.version>
    <commons-csv.version>1.9.0</commons-csv.version>
    <commons-fileupload.version>1.4</commons-fileupload.version>
    <commons-io.version>2.8.0</commons-io.version>
    <commons-lang3.version>3.12.0</commons-lang3.version>
    <commons-text.version>1.10.0</commons-text.version>
    <cxf.version>3.4.6</cxf.version>
    <eclipselink.version>2.7.5</eclipselink.version>
    <failureaccess.version>1.0.1</failureaccess.version>
    <freemarker.version>2.3.31</freemarker.version>
    <functional.version>1.4.2</functional.version>
    <gson.version>2.8.9</gson.version>
    <guava.version>30.1.1-jre</guava.version>
    <httpcomponents-httpclient.version>4.5.13</httpcomponents-httpclient.version>
    <httpcomponents-httpcore.version>4.4.15</httpcomponents-httpcore.version>
    <jackson.version>2.13.2</jackson.version>
    <jakarta.mail.version>1.6.7</jakarta.mail.version>
    <java.release>11</java.release>
    <javadoc-plugin.version>3.3.1</javadoc-plugin.version>
    <jersey.version>2.29.1</jersey.version>
    <jettison.version>1.4.1</jettison.version>
    <joda-time.version>2.10.10</joda-time.version>
    <json-simple.version>1.1.1</json-simple.version>
    <karaf.version>4.2.15</karaf.version>
    <node.version>v16.13.0</node.version>
    <osgi.compendium.version>6.0.0</osgi.compendium.version>
    <osgi.core.version>6.0.0</osgi.core.version>
    <querydsl.version>3.7.4</querydsl.version>
    <rest-assured.version>4.4.0</rest-assured.version>
    <spring.version>3.1.4.RELEASE</spring.version>
    <spring-security.version>3.1.7.RELEASE</spring-security.version>
  </properties>
  <modules>
    <module>modules/admin-ui-frontend</module>
    <module>modules/admin-ui</module>
    <module>modules/adopter-registration-api</module>
    <module>modules/adopter-registration-impl</module>
    <module>modules/analyze-mediapackage-workflowoperation</module>
    <module>modules/animate-api</module>
    <module>modules/animate-impl</module>
    <module>modules/animate-remote</module>
    <module>modules/animate-workflowoperation</module>
    <module>modules/annotation-api</module>
    <module>modules/annotation-impl</module>
    <module>modules/asset-manager-api</module>
    <module>modules/asset-manager-impl</module>
    <module>modules/asset-manager-static-file-authorization</module>
    <module>modules/asset-manager-storage-aws</module>
    <module>modules/asset-manager-storage-fs</module>
    <module>modules/asset-manager-workflowoperation</module>
    <module>modules/authorization-manager</module>
    <module>modules/authorization-xacml</module>
    <module>modules/caption-api</module>
    <module>modules/caption-impl</module>
    <module>modules/caption-remote</module>
    <module>modules/capture-admin-service-api</module>
    <module>modules/capture-admin-service-impl</module>
    <module>modules/comments-workflowoperation</module>
    <module>modules/common-jpa-impl</module>
    <module>modules/common</module>
    <module>modules/composer-ffmpeg</module>
    <module>modules/composer-service-api</module>
    <module>modules/composer-service-remote</module>
    <module>modules/composer-workflowoperation</module>
    <module>modules/conductor</module>
    <module>modules/cover-image-api</module>
    <module>modules/cover-image-impl</module>
    <module>modules/cover-image-remote</module>
    <module>modules/cover-image-workflowoperation</module>
    <module>modules/crop-api</module>
    <module>modules/crop-ffmpeg</module>
    <module>modules/crop-remote</module>
    <module>modules/crop-workflowoperation</module>
    <module>modules/db</module>
    <module>modules/dictionary-api</module>
    <module>modules/dictionary-hunspell</module>
    <module>modules/dictionary-none</module>
    <module>modules/dictionary-regexp</module>
    <module>modules/distribution-service-api</module>
    <module>modules/distribution-service-aws-s3-api</module>
    <module>modules/distribution-service-aws-s3-remote</module>
    <module>modules/distribution-service-aws-s3</module>
    <module>modules/distribution-service-download-remote</module>
    <module>modules/distribution-service-download</module>
    <module>modules/distribution-service-streaming-remote</module>
    <module>modules/distribution-service-streaming-wowza</module>
    <module>modules/distribution-workflowoperation</module>
    <module>modules/dublincore</module>
    <module>modules/editor-service-api</module>
    <module>modules/editor-service-remote</module>
    <module>modules/editor-service</module>
    <module>modules/editor</module>
    <module>modules/elasticsearch-api</module>
    <module>modules/elasticsearch-impl</module>
    <module>modules/elasticsearch-index</module>
    <module>modules/email-template-service-api</module>
    <module>modules/email-template-service-impl</module>
    <module>modules/engage-paella-player-7</module>
    <module>modules/engage-paella-player</module>
    <module>modules/engage-theodul-api</module>
    <module>modules/engage-theodul-core</module>
    <module>modules/engage-theodul-plugin-archetype</module>
    <module>modules/engage-theodul-plugin-controls</module>
    <module>modules/engage-theodul-plugin-custom-matomo</module>
    <module>modules/engage-theodul-plugin-custom-mhConnection</module>
    <module>modules/engage-theodul-plugin-custom-notifications</module>
    <module>modules/engage-theodul-plugin-description</module>
    <module>modules/engage-theodul-plugin-tab-description</module>
    <module>modules/engage-theodul-plugin-tab-downloads</module>
    <module>modules/engage-theodul-plugin-tab-shortcuts</module>
    <module>modules/engage-theodul-plugin-tab-slidetext</module>
    <module>modules/engage-theodul-plugin-video-videojs</module>
    <module>modules/engage-ui</module>
    <module>modules/event-comment</module>
    <module>modules/execute-api</module>
    <module>modules/execute-impl</module>
    <module>modules/execute-remote</module>
    <module>modules/execute-workflowoperation</module>
    <module>modules/external-api</module>
    <module>modules/fileupload</module>
    <module>modules/hello-world-api</module>
    <module>modules/hello-world-impl</module>
    <module>modules/hello-world-workflowoperation</module>
    <module>modules/incident-workflowoperation</module>
    <module>modules/index-service</module>
    <module>modules/ingest-download-service-api</module>
    <module>modules/ingest-download-service-impl</module>
    <module>modules/ingest-download-service-remote</module>
    <module>modules/ingest-download-service-workflowoperation</module>
    <module>modules/ingest-service-api</module>
    <module>modules/ingest-service-impl</module>
    <module>modules/inspection-service-api</module>
    <module>modules/inspection-service-ffmpeg</module>
    <module>modules/inspection-service-remote</module>
    <module>modules/inspection-workflowoperation</module>
    <module>modules/kernel</module>
    <module>modules/list-providers-service</module>
    <module>modules/live-schedule-api</module>
    <module>modules/live-schedule-impl</module>
    <module>modules/logging-workflowoperation</module>
    <module>modules/lti-service-api</module>
    <module>modules/lti-service-impl</module>
    <module>modules/lti-service-remote</module>
    <module>modules/lti</module>
    <module>modules/mattermost-notification-workflowoperation</module>
    <module>modules/message-broker-api</module>
    <module>modules/metadata-api</module>
    <module>modules/metadata-to-acl-workflowoperation</module>
    <module>modules/metadata</module>
    <module>modules/metrics-exporter</module>
    <module>modules/mpeg7</module>
    <module>modules/notification-workflowoperation</module>
    <module>modules/oaipmh-api</module>
    <module>modules/oaipmh-persistence</module>
    <module>modules/oaipmh-remote</module>
    <module>modules/oaipmh</module>
    <module>modules/presets</module>
    <module>modules/publication-service-api</module>
    <module>modules/publication-service-configurable-remote</module>
    <module>modules/publication-service-configurable</module>
    <module>modules/publication-service-oaipmh-remote</module>
    <module>modules/publication-service-oaipmh</module>
    <module>modules/publication-service-youtube-remote</module>
    <module>modules/publication-service-youtube-v3</module>
    <module>modules/redirect</module>
    <module>modules/rename-files-workflowoperation</module>
    <module>modules/rest-test-environment</module>
    <module>modules/runtime-info-ui-ng</module>
    <module>modules/runtime-info-ui</module>
    <module>modules/runtime-info</module>
    <module>modules/scheduler-api</module>
    <module>modules/scheduler-impl</module>
    <module>modules/scheduler-remote</module>
    <module>modules/schema</module>
    <module>modules/search-service-api</module>
    <module>modules/search-service-feeds</module>
    <module>modules/search-service-impl</module>
    <module>modules/search-service-remote</module>
    <module>modules/security-aai</module>
    <module>modules/security-cas-client-wrapper</module>
    <module>modules/security-cas</module>
    <module>modules/security-jwt</module>
    <module>modules/security-ldap</module>
    <module>modules/security-lti</module>
    <module>modules/security-shibboleth</module>
    <module>modules/series-service-api</module>
    <module>modules/series-service-impl</module>
    <module>modules/series-service-remote</module>
    <module>modules/serviceregistry</module>
    <module>modules/shared-filesystem-utils</module>
    <module>modules/silencedetection-api</module>
    <module>modules/silencedetection-impl</module>
    <module>modules/silencedetection-remote</module>
    <module>modules/smil-api</module>
    <module>modules/smil-impl</module>
    <module>modules/smil-workflowoperation</module>
    <module>modules/solr</module>
    <module>modules/sox-api</module>
    <module>modules/sox-impl</module>
    <module>modules/sox-remote</module>
    <module>modules/sox-workflowoperation</module>
    <module>modules/speech-to-text-api</module>
    <module>modules/speech-to-text-impl</module>
    <module>modules/speech-to-text-remote</module>
    <module>modules/speech-to-text-workflowoperation</module>
    <module>modules/static-file-service-api</module>
    <module>modules/static-file-service-impl</module>
    <module>modules/static</module>
    <module>modules/statistics-export-service-api</module>
    <module>modules/statistics-export-service-impl</module>
    <module>modules/statistics-provider-influx</module>
    <module>modules/statistics-provider-random</module>
    <module>modules/statistics-service-api</module>
    <module>modules/statistics-service-impl</module>
    <module>modules/statistics-service-remote</module>
    <module>modules/statistics-writer-workflowoperation</module>
    <module>modules/studio</module>
    <module>modules/termination-state-api</module>
    <module>modules/termination-state-aws</module>
    <module>modules/termination-state-impl</module>
    <module>modules/textanalyzer-api</module>
    <module>modules/textanalyzer-impl</module>
    <module>modules/textanalyzer-remote</module>
    <module>modules/textanalyzer-workflowoperation</module>
    <module>modules/textextractor-tesseract</module>
    <module>modules/themes-workflowoperation</module>
    <module>modules/themes</module>
    <module>modules/timelinepreviews-api</module>
    <module>modules/timelinepreviews-ffmpeg</module>
    <module>modules/timelinepreviews-remote</module>
    <module>modules/timelinepreviews-workflowoperation</module>
    <module>modules/tobira</module>
    <module>modules/transcription-service-amberscript</module>
    <module>modules/transcription-service-api</module>
    <module>modules/transcription-service-google-speech-impl</module>
    <module>modules/transcription-service-ibm-watson-impl</module>
    <module>modules/transcription-service-microsoft-azure</module>
    <module>modules/transcription-service-persistence</module>
    <module>modules/transcription-service-workflowoperation</module>
    <module>modules/urlsigning-common</module>
    <module>modules/urlsigning-service-api</module>
    <module>modules/urlsigning-service-impl</module>
    <module>modules/urlsigning-verifier-service-api</module>
    <module>modules/urlsigning-verifier-service-impl</module>
    <module>modules/user-interface-configuration</module>
    <module>modules/userdirectory-brightspace</module>
    <module>modules/userdirectory-canvas</module>
    <module>modules/userdirectory-ldap</module>
    <module>modules/userdirectory-moodle</module>
    <module>modules/userdirectory-sakai</module>
    <module>modules/userdirectory-studip</module>
    <module>modules/userdirectory</module>
    <module>modules/usertracking-api</module>
    <module>modules/usertracking-impl</module>
    <module>modules/videoeditor-api</module>
    <module>modules/videoeditor-ffmpeg-impl</module>
    <module>modules/videoeditor-remote</module>
    <module>modules/videoeditor-workflowoperation</module>
    <module>modules/videogrid-remote</module>
    <module>modules/videogrid-service-api</module>
    <module>modules/videogrid-service-impl</module>
    <module>modules/videogrid-workflowoperation</module>
    <module>modules/videosegmenter-api</module>
    <module>modules/videosegmenter-ffmpeg</module>
    <module>modules/videosegmenter-remote</module>
    <module>modules/videosegmenter-workflowoperation</module>
    <module>modules/waveform-api</module>
    <module>modules/waveform-ffmpeg</module>
    <module>modules/waveform-remote</module>
    <module>modules/waveform-workflowoperation</module>
    <module>modules/workflow-condition-parser</module>
    <module>modules/workflow-service-api</module>
    <module>modules/workflow-service-impl</module>
    <module>modules/workflow-service-remote</module>
    <module>modules/workflow-workflowoperation</module>
    <module>modules/working-file-repository-service-api</module>
    <module>modules/working-file-repository-service-impl</module>
    <module>modules/workspace-api</module>
    <module>modules/workspace-impl</module>
    <module>assemblies</module>

  </modules>
  <build>
    <defaultGoal>install</defaultGoal>
    <testResources>
      <!-- Add a log4j configuration file to the test resources -->
      <testResource>
        <directory>${opencast.basedir}/docs/log4j</directory>
        <includes>
          <include>log4j.properties</include>
        </includes>
      </testResource>
      <!-- Re-add the test resources as defined by the project -->
      <testResource>
        <directory>${project.basedir}/src/test/resources</directory>
      </testResource>
    </testResources>
    <!-- This defines what plugins run on a global basis.  Plugins defined here run for all child poms without needing
         to reference them from the child pom.  Note that configuration data for child plugins go in the
         pluginManagement stanza below -->
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <release>${java.release}</release>
          <encoding>UTF-8</encoding>
          <compilerArgument>${compilerArgument}</compilerArgument>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.0.0-M2</version>
        <executions>
          <execution>
            <id>enforce-maven</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>3.1.1</version>
                </requireMavenVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <version>1.4</version>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>create</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <doCheck>false</doCheck>
          <doUpdate>false</doUpdate>
          <shortRevisionLength>7</shortRevisionLength>
        </configuration>
      </plugin>
      <!-- Attach sources for all builds -->
      <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions>
        <execution> <id>attach-sources</id> <phase>verify</phase> <goals> <goal>jar-no-fork</goal> <goal>test-jar-no-fork</goal>
        </goals> </execution> </executions> </plugin> -->
      <!-- Run tests and display test output in the console -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <useFile>false</useFile>
          <argLine>-Dfile.encoding=UTF-8</argLine>
          <!-- see https://jira.codehaus.org/browse/SUREFIRE-951 -->
          <systemPropertyVariables>
            <M2_REPO>${settings.localRepository}</M2_REPO>
            <java.awt.headless>true</java.awt.headless>
            <eclipselink.logging.level>CONFIG</eclipselink.logging.level>
            <logj4.configuration>${basedir}/docs/log4j/log4j.properties</logj4.configuration>
            <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
            <java.locale.providers>COMPAT</java.locale.providers> <!-- Date formats changed with java 9 -->
          </systemPropertyVariables>
        </configuration>
      </plugin>
      <!-- Ensure that the source code matches the style rules -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>3.1.1</version>
        <dependencies>
          <dependency>
            <groupId>com.puppycrawl.tools</groupId>
            <artifactId>checkstyle</artifactId>
            <version>8.36.2</version>
          </dependency>
        </dependencies>
        <configuration>
          <skip>${checkstyle.skip}</skip>
          <configLocation>${opencast.basedir}/docs/checkstyle/opencast-checkstyle.xml</configLocation>
          <headerLocation>${opencast.basedir}/docs/checkstyle/opencast-header.txt</headerLocation>
          <suppressionsLocation>${opencast.basedir}/docs/checkstyle/checkstyle-suppressions.xml</suppressionsLocation>
          <includeTestSourceDirectory>true</includeTestSourceDirectory>
          <consoleOutput>true</consoleOutput>
          <logViolationsToConsole>true</logViolationsToConsole>
          <sourceDirectories>
            <sourceDirectory>src</sourceDirectory>
          </sourceDirectories>
          <excludes>**/package-info.java,**/generated-sources/**/*,**/org/apache/commons/**</excludes>
          <failOnViolation>true</failOnViolation>
          <failsOnError>true</failsOnError>
        </configuration>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <!-- use this to generate a code coverage report:
          mvn cobertura:cobertura -->
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.7</version>
        <configuration>
          <format>html</format>
          <aggregate>true</aggregate>
          <check/>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.sonatype.plugins</groupId>
        <artifactId>nexus-staging-maven-plugin</artifactId>
        <version>1.6.8</version>
        <extensions>true</extensions>
        <configuration>
          <serverId>ossrh</serverId>
          <nexusUrl>https://oss.sonatype.org/</nexusUrl>
          <autoReleaseAfterClose>false</autoReleaseAfterClose>
        </configuration>
      </plugin>
    </plugins>
    <!-- This defines the global plugin configurations. Plugins with configuration
      shared across multiple child poms should be configured here, and then referenced
      in the child. -->
    <pluginManagement>
      <plugins>
        <!-- Fix Eclipse Maven integration -->
        <!-- Since its 1.0 version, the Eclipse Maven integration requires
          this info to map several workspace actions to specific phases of Maven's
          lifecycle. Should this section not be included, or should certain plugins
          not be covered by the list of "pluginExecutions" below, Eclipse users will
          see errors of the type "plugin execution not covered". -->
        <!-- See https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html
          for more information -->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <versionRange>[1.0.0,)</versionRange>
                    <goals>
                      <goal>check</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute/>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>com.github.eirslett</groupId>
                    <artifactId>frontend-maven-plugin</artifactId>
                    <versionRange>[1.7.6,)</versionRange>
                    <goals>
                      <goal>install-node-and-npm</goal>
                      <goal>npm</goal>
                      <goal>grunt</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore/>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-pmd-plugin</artifactId>
                    <versionRange>3.15.0</versionRange>
                    <goals>
                      <goal>pmd</goal>
                      <goal>cpd</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute/>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-scr-plugin</artifactId>
          <version>1.26.2</version>
          <executions>
            <execution>
              <id>generate-scr-scrdescriptor</id>
              <goals>
                <goal>scr</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <!-- NOTE: this should match the settings for the reporting plugin below -->
          <version>$(javadoc-plugin.version}</version>
          <configuration>
            <detectJavaApiLink>true</detectJavaApiLink>
            <maxmemory>512m</maxmemory>
            <quiet>true</quiet>
            <additionalDependencies>
              <additionalDependency>
                <groupId>org.apache.lucene</groupId>
                <artifactId>lucene-core</artifactId>
                <version>2.9.3</version>
              </additionalDependency>
              <additionalDependency>
                <groupId>org.apache.lucene</groupId>
                <artifactId>lucene-analyzers</artifactId>
                <version>2.9.3</version>
              </additionalDependency>
            </additionalDependencies>
          </configuration>
          <executions>
            <execution>
              <goals>
                <goal>javadoc</goal>
              </goals>
              <phase>site</phase>
            </execution>
            <execution>
              <id>attach-javadocs</id>
              <goals>
                <goal>jar</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>5.1.9</version>
          <inherited>true</inherited>
          <configuration>
            <instructions>
              <Bundle-Category>opencastproject</Bundle-Category>
              <Bundle-DocURL>https://opencast.org/</Bundle-DocURL>
              <Bundle-Vendor>The Opencast Project</Bundle-Vendor>
              <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
              <!-- Can be removed after upgrading to OSGi R7 or later. -->
              <_noimportjava>true</_noimportjava>
            </instructions>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>3.0.0-M3</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.8</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.10.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>2.10</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>3.6.0</version>
        </plugin>
        <plugin>
          <groupId>org.antlr</groupId>
          <artifactId>antlr4-maven-plugin</artifactId>
          <version>4.7.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>3.3.0</version>
        </plugin>
        <plugin>
          <groupId>com.googlecode.maven-download-plugin</groupId>
          <artifactId>download-maven-plugin</artifactId>
          <version>1.6.6</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>3.0.0</version>
          <configuration>
            <sources>
              <source>${basedir}/src/main/resources/</source>
            </sources>
          </configuration>
          <executions>
            <execution>
              <goals>
                <goal>add-source</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>3.15.0</version>
          <configuration>
            <!--<includeTests>true</includeTests> -->
            <typeResolution>true</typeResolution>
            <targetJdk>${java.release}</targetJdk>
          </configuration>
          <executions>
            <execution>
              <phase>validate</phase>
              <goals>
                <goal>pmd</goal>
                <goal>cpd</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
        <plugin>
          <groupId>com.github.eirslett</groupId>
          <artifactId>frontend-maven-plugin</artifactId>
          <version>1.10.3</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>1.6.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.1.2</version>
          <executions>
            <execution>
              <id>analyze</id>
              <goals>
                <goal>analyze-only</goal>
              </goals>
              <configuration>
                <failOnWarning>true</failOnWarning>
              </configuration>
            </execution>
          </executions>
          <dependencies>
            <dependency>
              <groupId>org.ow2.asm</groupId>
              <artifactId>asm</artifactId>
              <version>7.3.1</version>
            </dependency>
            <dependency>
              <groupId>org.apache.maven.shared</groupId>
              <artifactId>maven-dependency-analyzer</artifactId>
              <version>1.11.1</version>
            </dependency>
          </dependencies>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <profiles>
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <!-- Attach sources for all builds -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.2.1</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <!-- Attach javadocs for all builds -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>${javadoc-plugin.version}</version>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <!-- Sign the builds -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.5</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>cleanFrontendCaches</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-clean-plugin</artifactId>
            <configuration>
              <filesets>
                <fileset>
                  <directory>node</directory>
                  <includes>
                    <include>**</include>
                  </includes>
                  <followSymlinks>false</followSymlinks>
                </fileset>
                <fileset>
                  <directory>node_modules</directory>
                  <includes>
                    <include>**</include>
                  </includes>
                  <followSymlinks>false</followSymlinks>
                </fileset>
                <fileset>
                  <directory>bower_components</directory>
                  <includes>
                    <include>**</include>
                  </includes>
                  <followSymlinks>false</followSymlinks>
                </fileset>
              </filesets>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.antlr</groupId>
        <artifactId>antlr4-runtime</artifactId>
        <version>4.7.2</version>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jms_1.1_spec</artifactId>
        <version>1.1.1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.solr</groupId>
        <artifactId>solr-core</artifactId>
        <exclusions>
          <exclusion>
            <groupId>woodstox</groupId>
            <artifactId>wstx-asl</artifactId>
          </exclusion>
        </exclusions>
        <version>1.4.1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.solr</groupId>
        <artifactId>solr-solrj</artifactId>
        <version>1.4.1</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>failureaccess</artifactId>
        <version>${failureaccess.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mnode.ical4j</groupId>
        <artifactId>ical4j</artifactId>
        <version>3.0.6-patched</version>
      </dependency>
      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.quartz</artifactId>
        <version>1.8.5_1</version>
      </dependency>
      <!-- OSGi -->
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.core</artifactId>
        <version>${osgi.core.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>osgi.cmpn</artifactId>
        <version>${osgi.compendium.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.fileinstall</artifactId>
        <version>3.6.4</version>
      </dependency>
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.metatype</artifactId>
        <version>1.0.4</version>
        <scope>provided</scope>
      </dependency>
      <!-- JSRs -->
      <dependency>
        <groupId>jakarta.xml.bind</groupId>
        <artifactId>jakarta.xml.bind-api</artifactId>
        <version>2.3.3</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-core</artifactId>
        <version>2.3.0.1</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.3.3</version>
        <exclusions>
          <exclusion>
            <groupId>com.sun.activation</groupId>
            <artifactId>jakarta.activation</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>jakarta.activation</groupId>
        <artifactId>jakarta.activation-api</artifactId>
        <version>1.2.1</version>
      </dependency>
      <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>jakarta.mail</artifactId>
        <version>${jakarta.mail.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
      </dependency>
      <dependency>
        <groupId>jakarta.ws.rs</groupId>
        <artifactId>jakarta.ws.rs-api</artifactId>
        <version>2.1.6</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-server</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <!-- JPA -->
      <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.core</artifactId>
        <version>${eclipselink.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.jpa</artifactId>
        <version>${eclipselink.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.jpa.jpql</artifactId>
        <version>${eclipselink.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.asm</artifactId>
        <version>${eclipselink.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.antlr</artifactId>
        <version>${eclipselink.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>jakarta.persistence</artifactId>
        <version>2.2.3</version>
      </dependency>
      <!-- CXF -->
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxrs</artifactId>
        <version>${cxf.version}</version>
      </dependency>
      <!-- Spring -->
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-expression</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.osgi</groupId>
        <artifactId>org.springframework.osgi.io</artifactId>
        <version>1.2.1</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.osgi</groupId>
        <artifactId>org.springframework.osgi.core</artifactId>
        <version>1.2.1</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.osgi</groupId>
        <artifactId>org.springframework.osgi.extender</artifactId>
        <version>1.2.1</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>${spring-security.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>${spring-security.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>${spring-security.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security.oauth</groupId>
        <artifactId>spring-security-oauth</artifactId>
        <version>2.3.7.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-cas</artifactId>
        <version>${spring-security.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-ldap</artifactId>
        <version>${spring-security.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity</artifactId>
        <version>1.7</version>
      </dependency>
      <dependency>
        <groupId>org.apache.santuario</groupId>
        <artifactId>xmlsec</artifactId>
        <version>2.1.7</version>
      </dependency>
      <dependency>
        <groupId>org.owasp.esapi</groupId>
        <artifactId>esapi</artifactId>
        <version>2.1.0.1</version>
      </dependency>
      <dependency>
        <groupId>org.opensaml</groupId>
        <artifactId>opensaml</artifactId>
        <version>2.6.4</version>
      </dependency>
      <dependency>
        <groupId>org.jasig.cas.client</groupId>
        <artifactId>cas-client-core</artifactId>
        <version>3.3.3</version>
      </dependency>
      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.commons-httpclient</artifactId>
        <version>3.1_7</version>
      </dependency>
      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.xerces</artifactId>
        <version>2.12.1_1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore-osgi</artifactId>
        <version>${httpcomponents-httpcore.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient-osgi</artifactId>
        <version>${httpcomponents-httpclient.version}</version>
      </dependency>
      <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymock</artifactId>
        <scope>test</scope>
        <version>4.3</version>
      </dependency>
      <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymockclassextension</artifactId>
        <version>3.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>xmlunit</groupId>
        <artifactId>xmlunit</artifactId>
        <version>1.6</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>xml-apis</groupId>
        <artifactId>xml-apis</artifactId>
        <version>1.4.01</version>
      </dependency>
      <!-- logging -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.33</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.33</version>
      </dependency>
      <!-- apache commons syncing -->
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>${commons-compress.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${commons-codec.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
        <version>${commons-collections.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>${commons-fileupload.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${commons-io.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons-lang3.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>${commons-text.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-csv</artifactId>
        <version>${commons-csv.version}</version>
      </dependency>
      <!-- Querydsl -->
      <dependency>
        <groupId>com.mysema.querydsl</groupId>
        <artifactId>querydsl-apt</artifactId>
        <version>${querydsl.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>com.mysema.querydsl</groupId>
        <artifactId>querydsl-jpa</artifactId>
        <version>${querydsl.version}</version>
      </dependency>
      <dependency>
        <groupId>com.mysema.querydsl</groupId>
        <artifactId>querydsl-core</artifactId>
        <version>${querydsl.version}</version>
      </dependency>
      <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>${joda-time.version}</version>
      </dependency>
      <!-- influx -->
      <dependency>
        <groupId>org.influxdb</groupId>
        <artifactId>influxdb-java</artifactId>
        <version>2.15</version>
      </dependency>
      <!-- testing -->
      <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>json-path</artifactId>
        <version>${rest-assured.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>xml-path</artifactId>
        <version>${rest-assured.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>${rest-assured.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>jsr305</artifactId>
        <version>3.0.2</version>
      </dependency>
      <dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
        <version>${json-simple.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>2.5.8</version>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest</artifactId>
        <version>2.2</version>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
        <version>2.2</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.3.176</version>
      </dependency>
      <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5.5</version>
      </dependency>
      <dependency>
        <groupId>com.entwinemedia.common</groupId>
        <artifactId>functional</artifactId>
        <version>${functional.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.xalan</artifactId>
        <version>2.7.2_3</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${gson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-cbor</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.aws-java-sdk</artifactId>
        <version>${aws.version}</version>
      </dependency>
      <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>${freemarker.version}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-utils</artifactId>
        <version>3.3.0</version>
      </dependency>
      <dependency>
        <groupId>org.opencastproject</groupId>
        <artifactId>android-mms</artifactId>
        <version>1.2</version>
      </dependency>
      <dependency>
        <groupId>be.ugent.brightspace</groupId>
        <artifactId>valence-sdk-java</artifactId>
        <version>1.0.1</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.jettison</groupId>
        <artifactId>jettison</artifactId>
        <version>${jettison.version}</version>
        <exclusions>
          <exclusion>
            <groupId>stax</groupId>
            <artifactId>stax-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <!-- All non-build related project data below here -->
  <organization>
    <name>Opencast Project</name>
    <url>http://www.opencast.org/</url>
  </organization>
  <!-- Active contributors to Opencast -->
  <developers>
    <developer>
      <id>ruben.perez</id>
      <name>Ruben Perez Vazquez</name>
      <email>ruben.perez@uni-koeln.de</email>
      <organization>University of Cologne</organization>
      <organizationUrl>http://www.uni-koeln.de</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>rrolf</id>
      <name>Ruediger Rolf</name>
      <email>rrolf@uni-osnabrueck.de</email>
      <organization>University of Osnabrueck</organization>
      <organizationUrl>http://www.uni-osnabrueck.de/</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>greg_logan</id>
      <name>Greg Logan</name>
      <email>gregorydlogan@gmail.com</email>
      <organization>Independent Consultant</organization>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>-6</timezone>
    </developer>
    <developer>
      <id>matjaz</id>
      <name>Matjaz Rihtar</name>
      <email>matjaz.rihtar@ijs.si</email>
      <organization>Jozef Stefan Institute</organization>
      <organizationUrl>http://www.ijs.si</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>twunden</id>
      <name>Tobias Wunden</name>
      <email>twunden@extron.com</email>
      <organization>Extron Electronics</organization>
      <organizationUrl>http://extron.com</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>akm220</id>
      <name>Adam McKenzie</name>
      <email>amckenzie@extron.com</email>
      <organization>Extron Electronics</organization>
      <organizationUrl>http://extron.com</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>-6</timezone>
    </developer>
    <developer>
      <id>cedriessen</id>
      <name>Christoph Driessen</name>
      <email>cdriessen@extron.com</email>
      <organization>Extron Electronics</organization>
      <organizationUrl>http://extron.com</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>wsmirnow</id>
      <name>Waldemar Smirnow</name>
      <email>wsmirnow@uni-osnabrueck.de</email>
      <organization>University of Osnabrueck</organization>
      <organizationUrl>http://www.uni-osnabrueck.de/</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>lrohner</id>
      <name>Lukas Rohner</name>
      <email>lrohner@extron.com</email>
      <organization>Extron Electronics</organization>
      <organizationUrl>http://extron.com</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>xavier.butty</id>
      <name>Xavier Butty</name>
      <email/>
      <organization/>
      <organizationUrl/>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>jamesp</id>
      <name>James Perrin</name>
      <email>james.perrin@manchester.ac.uk</email>
      <organization>University of Manchester</organization>
      <organizationUrl>http://www.manchester.ac.uk</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>0</timezone>
    </developer>
    <developer>
      <id>ts23</id>
      <name>Tobias Schiebeck</name>
      <email>tobias.schiebeck@manchester.ac.uk</email>
      <organization>University of Manchester</organization>
      <organizationUrl>http://www.manchester.ac.uk</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>0</timezone>
    </developer>
    <developer>
      <id>karen</id>
      <name>Karen Dolan</name>
      <email>kdolan@dce.harvard.edu</email>
      <organization>Harvard University, Division of Continuing Education</organization>
      <organizationUrl>http://www.dce.harvard.edu</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>-5</timezone>
    </developer>
    <developer>
      <id>lkiesow</id>
      <name>Lars Kiesow</name>
      <email>lkiesow@uos.de</email>
      <url>http://lkiesow.de</url>
      <organization>ELAN e.V., University of Osnabr&#xFC;ck</organization>
      <organizationUrl>http://www.virtuos.uos.de/</organizationUrl>
      <roles>
        <role>developer</role>
        <role>qa</role>
      </roles>
      <timezone>Europe/Berlin</timezone>
      <properties>
        <irc.nick>lkiesow</irc.nick>
      </properties>
    </developer>
    <developer>
      <id>basil.brunner</id>
      <name>Basil Brunner</name>
      <email>bbrunner@extron.com</email>
      <organization>Extron Electronics</organization>
      <organizationUrl>http://extron.com</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>mstypa</id>
      <name>Michael Stypa</name>
      <email>michael@stypa.info</email>
      <url>http://michael.stypa.info</url>
      <organization>ELAN e.V., University of Osnabr&#xFC;ck</organization>
      <organizationUrl>http://www.virtuos.uos.de/</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>Europe/Berlin</timezone>
      <properties>
        <irc.nick>mstypa</irc.nick>
        <bitbucket.nick>doofy</bitbucket.nick>
      </properties>
    </developer>
    <developer>
      <id>rsantos</id>
      <name>Rute Santos</name>
      <email>rute_santos@harvard.edu</email>
      <organization>Harvard University, Division of Continuing Education</organization>
      <organizationUrl>http://www.dce.harvard.edu</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>-5</timezone>
    </developer>
    <developer>
      <id>staubesv</id>
      <name>Sven Stauber</name>
      <email>sven.stauber@switch.ch</email>
      <organization>SWITCH</organization>
      <organizationUrl>http://www.switch.ch</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>Europe/Zurich</timezone>
      <properties>
        <irc.nick>stauber</irc.nick>
      </properties>
    </developer>
    <developer>
      <id>smarquard</id>
      <name>Stephen Marquard</name>
      <email>stephen.marquard@uct.ac.za</email>
      <organization>University of Cape Town</organization>
      <organizationUrl>http://www.cilt.uct.ac.za</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>+2</timezone>
    </developer>
      <developer>
      <id>cgreweling</id>
      <name>Christian Greweling</name>
      <email>christian.greweling@uni-osnabrueck.de</email>
      <organization>ELAN e.V., University of Osnabrueck</organization>
      <organizationUrl>http://www.virtuos.uos.de/</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>kihler</id>
      <name>Katrin Ihler</name>
      <email>kihler@uni-osnabrueck.de</email>
      <organization>ELAN e.V., University of Osnabrueck</organization>
      <organizationUrl>http://www.virtuos.uos.de/</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>mtneug</id>
      <name>Matthias Neugebauer</name>
      <email>matthias.neugebauer@uni-muenster.de</email>
      <organization>University of Muenster</organization>
      <organizationUrl>https://www.uni-muenster.de/</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
        <id>turro</id>
        <name>Carlos Turró</name>
        <email>turro@cc.upv.es</email>
        <organization>Universitat Politecnica de Valencia</organization>
        <organizationUrl>http://www.upv.es/</organizationUrl>
        <roles>
          <role>developer</role>
         </roles>
        <timezone>Europe/Madrid</timezone>
     </developer>
     <developer>
       <id>jkniephoff</id>
       <name>Julian Kniephoff</name>
       <email>kniephoff@elan-ev.de</email>
       <url>https://juliankniephoff.com</url>
       <organization>ELAN e.V.</organization>
       <organizationUrl>https://elan-ev.de/</organizationUrl>
       <roles>
         <role>developer</role>
       </roles>
       <timezone>Europe/Berlin</timezone>
      <properties>
        <irc.nick>jkniephoff</irc.nick>
        <github.nick>JulianKniephoff</github.nick>
      </properties>
    </developer>
    <developer>
      <id>mliradelc</id>
      <name>Maximiliano Lira Del Canto</name>
      <email>mliradel@uni-koeln.de</email>
      <url></url>
      <organization>Computer Center - University of Cologne</organization>
      <organizationUrl>https://www.uni-koeln.de</organizationUrl>
      <roles>
         <role>developer</role>
      </roles>
      <timezone>Europe/Berlin</timezone>
      <properties>
        <irc.nick></irc.nick>
        <github.nick>mliradelc</github.nick>
      </properties>
    </developer>
    <developer>
      <id>awilken</id>
      <name>Arne Wilken</name>
      <email>wilken@elan-ev.de</email>
      <organization>ELAN e.V.</organization>
      <organizationUrl>https://elan-ev.de/</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>Europe/Berlin</timezone>
      <properties>
        <github.nick>Arnei</github.nick>
        <matrix.user>@arnewilken:chat.virtuos.uni-osnabrueck.de</matrix.user>
      </properties>
    </developer>
  </developers>
  <!-- People having significantly contributed to Opencast in the past -->
  <contributors>
    <contributor>
      <name>Micah Sutton</name>
      <email>msutton3@unl.edu</email>
    </contributor>
    <contributor>
      <name>Jamie Hodge</name>
      <email>jamieh@hum.ku.dk</email>
    </contributor>
    <contributor>
      <name>Johannes Emden</name>
      <email>johannes.emden@uni-osnabrueck.de</email>
    </contributor>
    <contributor>
      <name>Andre Klassen</name>
      <email>andre.klassen@uni-osnabrueck.de</email>
    </contributor>
    <contributor>
      <name>Stefan Altevogt</name>
      <email>saltevog@uni-osnabrueck.de</email>
    </contributor>
    <contributor>
      <name>Josh Holtzman</name>
      <email>jholtzman@berkeley.edu</email>
    </contributor>
    <contributor>
      <name>Jaime Gago</name>
      <email>jaime@entwinemedia.com</email>
    </contributor>
    <contributor>
      <name>Judy Stern</name>
      <email>jlstern@berkeley.edu</email>
    </contributor>
    <contributor>
      <name>Michelle Ziegmann</name>
      <email>michelle@media.berkeley.edu</email>
    </contributor>
    <contributor>
      <name>David Horwitz</name>
      <email>david.horwitz@uct.ac.za</email>
    </contributor>
    <contributor>
      <name>Nils H. Birnbaum</name>
      <email>nbirnbau@uni-osnabrueck.de</email>
    </contributor>
    <contributor>
      <name>Denis Meyer</name>
      <email>denmeyer@uni-osnabrueck.de</email>
    </contributor>
    <contributor>
      <name>Markus Moormann</name>
      <email>mmoorman@uni-osnabrueck.de</email>
    </contributor>
    <contributor>
      <name>Kenneth Lui</name>
      <email>hkkenneth@gmail.com</email>
    </contributor>
    <contributor>
      <name>Eduardo Alonso Gil</name>
      <email>ealonso@uvigo.es</email>
    </contributor>
    <contributor>
      <name>Kristofor Amundson</name>
      <email>kta719@mail.usask.ca</email>
    </contributor>
    <contributor>
      <name>Christopher Brooks</name>
      <email>cab938@mail.usask.ca</email>
    </contributor>
    <contributor>
      <name>Adam Hochman</name>
      <email>adam@media.berkeley.edu</email>
    </contributor>
    <contributor>
      <name>Benjamin Wulff</name>
      <email>bwulff@uos.de</email>
    </contributor>
    <contributor>
      <name>Aaron Zeckoski</name>
      <email>azeckoski@vt.edu</email>
    </contributor>
    <contributor>
      <name>Markus Ketterl</name>
      <email>mketterl@uni-osnabrueck.de</email>
    </contributor>
    <contributor>
      <name>Bostjan Pajntar</name>
      <email>bostjan.pajntar@ijs.si</email>
    </contributor>
    <contributor>
      <name>Nejc Skofic</name>
      <email>nejc.skofic@ijs.si</email>
    </contributor>
    <contributor>
      <name>Per Pascal Grube</name>
      <email>pascal.grube@flightmare.net</email>
    </contributor>
    <contributor>
      <name>Pascal Aubort</name>
      <email>pascal@entwinemedia.com</email>
    </contributor>
    <contributor>
      <name>Edmore Moyo</name>
      <email>edmore.moyo@uct.ac.za</email>
    </contributor>
  </contributors>
  <mailingLists>
    <mailingList>
      <name>Opencast Developer Mailing List</name>
      <subscribe>https://groups.google.com/a/opencast.org/forum/#!forum/dev</subscribe>
      <unsubscribe>https://groups.google.com/a/opencast.org/forum/#!forum/dev</unsubscribe>
      <post>dev@opencast.org</post>
      <archive>https://groups.google.com/a/opencast.org/forum/#!forum/dev</archive>
    </mailingList>
  </mailingLists>
  <licenses>
    <license>
      <name>Educational Community License, Version 2.0</name>
      <url>https://opensource.org/licenses/ECL-2.0</url>
    </license>
  </licenses>
  <scm>
    <connection>scm:git:https://github.com/opencast/opencast.git</connection>
    <developerConnection>scm:git:https://github.com/opencast/opencast.git</developerConnection>
    <url>https://github.com/opencast/opencast/</url>
  </scm>
  <issueManagement>
    <system>GitHub</system>
    <url>https://github.com/opencast/opencast</url>
  </issueManagement>
  <!-- Site Report generation settings -->
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>2.20</version>
        <configuration>
          <aggregate>true</aggregate>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${javadoc-plugin.version}</version>
        <configuration>
          <detectJavaApiLink>true</detectJavaApiLink>
          <maxmemory>512m</maxmemory>
          <quiet>true</quiet>
        </configuration>
        <reportSets>
          <reportSet>
            <id>default</id>
            <reports>
              <report>javadoc</report>
            </reports>
          </reportSet>
          <reportSet>
            <id>aggregate</id>
            <inherited>false</inherited>
            <reports>
              <report>aggregate</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <aggregate>false</aggregate>
          <inputEncoding>UTF-8</inputEncoding>
          <outputEncoding>UTF-8</outputEncoding>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.8.1</version>
        <configuration>
          <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>index</report>
              <report>summary</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <configuration>
          <aggregate>true</aggregate>
          <!--<includeTests>true</includeTests>-->
          <typeResolution>true</typeResolution>
          <targetJdk>${java.release}</targetJdk>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
  <repositories>
    <repository>
      <id>central</id>
      <name>Central Maven Repository</name>
      <url>https://repo.maven.apache.org/maven2/</url>
    </repository>
    <repository>
      <id>mvn.opencast.org</id>
      <name>Opencast 3rd-Party Repository</name>
      <url>https://mvn.opencast.org/</url>
    </repository>
    <!-- Used by the Microsoft Azure Transcription Service-->
    <repository>
      <id>maven-cognitiveservices-speech</id>
      <name>Microsoft Cognitive Services Speech Maven Repository</name>
      <url>https://csspeechstorage.blob.core.windows.net/maven/</url>
    </repository>
  </repositories>
  <distributionManagement>
    <snapshotRepository>
      <id>ossrh</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
    <repository>
      <id>ossrh</id>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
    <site>
      <!-- Note that we do not deploy the site using maven, so this is totally fake -->
      <id>fakesite.opencast.org</id>
      <url>http://fakesite.opencast.org</url>
    </site>
  </distributionManagement>
</project>
