dspace-server-webapp
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>org.dspace</groupId> <artifactId>dspace-server-webapp</artifactId> <version>9.0-rc1</version> </dependency>
<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>org.dspace</groupId> <artifactId>dspace-server-webapp</artifactId> <name>DSpace Server Webapp</name> <description> DSpace Server Webapp (Spring Boot) </description> <!-- A Parent POM that Maven inherits DSpace Default POM attributes from. --> <parent> <groupId>org.dspace</groupId> <artifactId>dspace-parent</artifactId> <version>9.0-rc1</version> <relativePath>..</relativePath> </parent> <properties> <!-- This is the path to the root [dspace-src] directory. --> <root.basedir>${basedir}/..</root.basedir> <!-- Default resource delimiter for Spring Boot, so it doesn't clash with Spring ${} placeholders--> <resource.delimiter>@</resource.delimiter> </properties> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>properties-maven-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <phase>initialize</phase> <goals> <goal>read-project-properties</goal> </goals> <configuration> <files> <file>${root.basedir}/dspace/config/dspace.cfg</file> <file>${root.basedir}/dspace/config/local.cfg</file> </files> <quiet>true</quiet> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>testEnvironment</id> <phase>process-resources</phase> <goals> <goal>testResources</goal> </goals> <configuration> <resources> <resource> <directory>${basedir}/src/test/resources</directory> </resource> </resources> </configuration> </execution> <execution> <id>webappFiltering</id> <phase>process-resources</phase> <goals> <goal>resources</goal> </goals> <configuration> <resources> <resource> <directory>${basedir}/src/main/resources</directory> <includes> <include>**/*application*.properties</include> <include>**/*dspace*.properties</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>${basedir}/src/main/resources</directory> <excludes> <exclude>**/*application*.properties</exclude> <exclude>**/*dspace*.properties</exclude> </excludes> <includes> <include>**/*.properties</include> </includes> </resource> <resource> <directory>${basedir}/src/main/resources</directory> <includes> <include>**/static/**</include> <include>**/spring/**</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <executions> <execution> <goals> <!-- Builds a *-tests.jar of all test classes --> <goal>test-jar</goal> </goals> </execution> </executions> </plugin> <!-- Verify OS license headers for all source code files --> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> <configuration> <excludes> <exclude>**/src/test/resources/**</exclude> <exclude>**/src/test/data/**</exclude> <!--Skip license check of third party files included/customized from HAL Browser --> <exclude>src/main/resources/static/index.html</exclude> <exclude>src/main/resources/static/login.html</exclude> <exclude>src/main/resources/static/styles.css</exclude> <exclude>src/main/resources/static/js/hal/**</exclude> <exclude>src/main/resources/static/js/vendor/**</exclude> </excludes> </configuration> </plugin> <!-- This plugin allows us to run a Groovy script in our Maven POM (see: https://groovy.github.io/gmaven/groovy-maven-plugin/execute.html ) We are generating a OS-agnostic version (agnostic.build.dir) of the ${project.build.directory} property (full path of target dir). This is needed by the Surefire & Failsafe plugins (see below) to initialize the Unit Test environment's dspace.cfg file. Otherwise, the Unit Test Framework will not work on Windows OS. This Groovy code was mostly borrowed from: http://stackoverflow.com/questions/3872355/how-to-convert-file-separator-in-maven --> <plugin> <groupId>org.codehaus.gmaven</groupId> <artifactId>groovy-maven-plugin</artifactId> <executions> <execution> <id>setproperty</id> <phase>initialize</phase> <goals> <goal>execute</goal> </goals> <configuration> <source> project.properties['agnostic.build.dir'] = project.build.directory.replace(File.separator, '/'); log.info("Initializing Maven property 'agnostic.build.dir' to: {}", project.properties['agnostic.build.dir']); </source> </configuration> </execution> </executions> </plugin> </plugins> </build> <profiles> <!-- Setup the Unit Test Environment (when -DskipUnitTests=false) --> <profile> <id>unit-test-environment</id> <activation> <activeByDefault>false</activeByDefault> <property> <name>skipUnitTests</name> <value>false</value> </property> </activation> <build> <plugins> <!-- Unit Testing setup: This plugin unzips the 'testEnvironment.zip' file (created by dspace-parent POM), into the 'target/testing/' folder, to essentially create a test install of DSpace, against which Tests can be run. --> <plugin> <artifactId>maven-dependency-plugin</artifactId> <configuration> <outputDirectory>${project.build.directory}/testing</outputDirectory> <artifactItems> <artifactItem> <groupId>org.dspace</groupId> <artifactId>dspace-parent</artifactId> <version>${project.version}</version> <type>zip</type> <classifier>testEnvironment</classifier> </artifactItem> </artifactItems> </configuration> <executions> <execution> <id>setupUnitTestEnvironment</id> <phase>generate-test-resources</phase> <goals> <goal>unpack</goal> </goals> </execution> </executions> </plugin> <!-- Run Unit Testing! This plugin just kicks off the tests --> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <systemPropertyVariables> <!-- Specify the dspace.dir to use for test environment --> <!-- This system property is loaded by AbstractDSpaceTest to initialize the test environment --> <dspace.dir>${agnostic.build.dir}/testing/dspace</dspace.dir> <!-- Turn off any DSpace logging --> <dspace.log.init.disable>true</dspace.log.init.disable> <solr.install.dir>${agnostic.build.dir}/testing/dspace/solr/</solr.install.dir> </systemPropertyVariables> </configuration> </plugin> </plugins> </build> </profile> <!-- Setup the Integration Test Environment (when -DskipIntegrationTests=false) --> <profile> <id>integration-test-environment</id> <activation> <activeByDefault>false</activeByDefault> <property> <name>skipIntegrationTests</name> <value>false</value> </property> </activation> <build> <plugins> <!-- Integration Testing setup: This plugin unzips the 'testEnvironment.zip' file (created by dspace-parent POM), into the 'target/testing/' folder, to essentially create a test install of DSpace, against which Tests can be run. --> <plugin> <artifactId>maven-dependency-plugin</artifactId> <configuration> <outputDirectory>${project.build.directory}/testing</outputDirectory> <artifactItems> <artifactItem> <groupId>org.dspace</groupId> <artifactId>dspace-parent</artifactId> <version>${project.version}</version> <type>zip</type> <classifier>testEnvironment</classifier> </artifactItem> </artifactItems> </configuration> <executions> <execution> <id>setupIntegrationTestEnvironment</id> <phase>pre-integration-test</phase> <goals> <goal>unpack</goal> </goals> </execution> </executions> </plugin> <!-- Run Integration Testing! This plugin just kicks off the tests (when enabled). --> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <configuration> <systemPropertyVariables> <!-- Specify the dspace.dir to use for test environment --> <dspace.dir>${agnostic.build.dir}/testing/dspace</dspace.dir> <!-- Turn off any DSpace logging --> <dspace.log.init.disable>true</dspace.log.init.disable> <solr.install.dir>${agnostic.build.dir}/testing/dspace/solr/</solr.install.dir> </systemPropertyVariables> </configuration> </plugin> </plugins> </build> </profile> </profiles> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${spring.version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <!-- Spring Boot dependencies --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>${spring-boot.version}</version> <exclusions> <!-- Later version provided by dspace-api --> <exclusion> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> <version>${spring-boot.version}</version> <exclusions> <!-- Later version brought in by spring-boot-starter-web above --> <exclusion> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jdk8</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> <version>${spring-boot.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <version>${spring-boot.version}</version> <exclusions> <!-- Use version brought in by spring-boot-starter-web above --> <exclusion> <groupId>io.micrometer</groupId> <artifactId>micrometer-observation</artifactId> </exclusion> <!-- Use version brought in by spring-boot-starter-web above --> <exclusion> <groupId>io.micrometer</groupId> <artifactId>micrometer-commons</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.flipkart.zjsonpatch</groupId> <artifactId>zjsonpatch</artifactId> <version>0.4.16</version> </dependency> <!-- HAL Browser (via WebJars) : https://github.com/mikekelly/hal-browser --> <!-- This is primarily used to pull in the HAL Browser core Javascript code ('js' folder), as we've overridden many dependencies below and the HTML pages in src/main/webapp/ --> <!-- NOTE: Eventually this should be replaced by the HAL Explorer included in Spring Data REST, see https://github.com/DSpace/DSpace/issues/3017 --> <dependency> <groupId>org.webjars</groupId> <artifactId>hal-browser</artifactId> <version>ad9b865</version> </dependency> <!-- Pull in several WebJars dependencies used to update/enhance the default HAL Browser --> <!-- Pull in current version of JQuery via WebJars Made available at: webjars/jquery/dist/jquery.min.js --> <dependency> <groupId>org.webjars.bowergithub.jquery</groupId> <artifactId>jquery-dist</artifactId> <version>3.7.1</version> </dependency> <!-- Pull in current version of Toastr (toastrjs.com) via WebJars Made available at: webjars/toastr/build/toastr.min.js --> <dependency> <groupId>org.webjars.bowergithub.codeseven</groupId> <artifactId>toastr</artifactId> <version>2.1.4</version> <exclusions> <!-- We use a later version of JQuery as defined above --> <exclusion> <groupId>org.webjars.bowergithub.jquery</groupId> <artifactId>jquery-dist</artifactId> </exclusion> </exclusions> </dependency> <!-- Pull in current version of URI.js (https://medialize.github.io/URI.js/) via WebJars Made available at: webjars/urijs/src/URI.min.js --> <dependency> <groupId>org.webjars.bowergithub.medialize</groupId> <artifactId>uri.js</artifactId> <version>1.19.11</version> </dependency> <!-- Pull in current version of Underscore.js (https://underscorejs.org/) via WebJars Made available at: webjars/underscore/underscore-min.js --> <dependency> <groupId>org.webjars.bowergithub.jashkenas</groupId> <artifactId>underscore</artifactId> <version>1.13.2</version> </dependency> <!-- Pull in current version of Backbone.js (http://backbonejs.org/) via WebJars Made available at: webjars/backbone/backbone-min.js --> <dependency> <groupId>org.webjars.bowergithub.jashkenas</groupId> <artifactId>backbone</artifactId> <version>1.4.1</version> <exclusions> <!-- We use a later version of underscore as defined above --> <exclusion> <groupId>org.webjars.bowergithub.jashkenas</groupId> <artifactId>underscore</artifactId> </exclusion> </exclusions> </dependency> <!-- Pull in current version of json-editor.js (https://github.com/json-editor/json-editor) via WebJars Made available at: webjars/json-editor__json-editor/2.6.1/dist/jsoneditor.js (Required by js/vendor/CustomPostForm.js) NOTE: Because the path contains the version, you MUST update index.html when updating this dependency --> <dependency> <groupId>org.webjars.npm</groupId> <artifactId>json-editor__json-editor</artifactId> <version>2.15.1</version> </dependency> <!-- Also pull in current version of Bootstrap via WebJars. This is used by BOTH our HAL Browser and our OAI-PMH interface. Made available at: webjars/bootstrap/dist/js/bootstrap.min.js and webjars/bootstrap/dist/css/bootstrap.min.css --> <dependency> <groupId>org.webjars.bowergithub.twbs</groupId> <artifactId>bootstrap</artifactId> <version>4.6.2</version> </dependency> <!-- Add in Spring Security for AuthN and AuthZ --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> <version>${spring-boot.version}</version> <exclusions> <!-- Use version brought in by spring-boot-starter-web above --> <exclusion> <groupId>io.micrometer</groupId> <artifactId>micrometer-observation</artifactId> </exclusion> </exclusions> </dependency> <!-- Add in log4j support by excluding default logging, and using starter-log4j --> <!-- See: https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto-logging --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>${spring-boot.version}</version> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> <!-- Spring JCL is unnecessary and conflicts with commons-logging when both are on classpath --> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-jcl</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> <version>${spring-boot.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j.version}</version> </dependency> <!-- DSpace dependencies --> <dependency> <groupId>org.dspace</groupId> <artifactId>dspace-api</artifactId> </dependency> <dependency> <groupId>org.dspace</groupId> <artifactId>dspace-api</artifactId> <type>test-jar</type> <scope>test</scope> </dependency> <dependency> <groupId>org.dspace</groupId> <artifactId>dspace-services</artifactId> </dependency> <!-- DSpace modules to deploy (these modules are all optional, but add features/endpoints to webapp) --> <!-- You may choose to comment out any of these modules if you do not want/need its features --> <dependency> <groupId>org.dspace</groupId> <artifactId>dspace-iiif</artifactId> </dependency> <dependency> <groupId>org.dspace</groupId> <artifactId>dspace-oai</artifactId> </dependency> <dependency> <groupId>org.dspace</groupId> <artifactId>dspace-saml2</artifactId> </dependency> <dependency> <groupId>org.dspace</groupId> <artifactId>dspace-rdf</artifactId> </dependency> <dependency> <groupId>org.dspace</groupId> <artifactId>dspace-sword</artifactId> </dependency> <dependency> <groupId>org.dspace</groupId> <artifactId>dspace-swordv2</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> </dependency> <dependency> <groupId>commons-validator</groupId> <artifactId>commons-validator</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <dependency> <groupId>com.nimbusds</groupId> <artifactId>nimbus-jose-jwt</artifactId> <version>${nimbus-jose-jwt.version}</version> <exclusions> <!-- We pull in a later version below --> <exclusion> <groupId>net.minidev</groupId> <artifactId>json-smart</artifactId> </exclusion> </exclusions> </dependency> <!-- Specify the version of json-smart we want to use. This solves a version mismatch between nimbus-jose-jwt and json-path below. --> <dependency> <groupId>net.minidev</groupId> <artifactId>json-smart</artifactId> <version>2.5.2</version> </dependency> <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>${solr.client.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-cache Caching dependencies for iiif endpoint. --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> <version>${spring-boot.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.cache/cache-api --> <dependency> <groupId>javax.cache</groupId> <artifactId>cache-api</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.ehcache/ehcache --> <dependency> <groupId>org.ehcache</groupId> <artifactId>ehcache</artifactId> <version>${ehcache.version}</version> </dependency> <!-- TEST DEPENDENCIES --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- Required for ITs to ensure they use Apache HttpClient in AbstractWebClientIntegrationTest --> <dependency> <groupId>org.apache.httpcomponents.client5</groupId> <artifactId>httpclient5</artifactId> <version>5.4.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <version>${spring-security.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <exclusions> <!-- We pull in a later version above --> <exclusion> <groupId>net.minidev</groupId> <artifactId>json-smart</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path-assert</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-inline</artifactId> <scope>test</scope> </dependency> <!-- Solr Core is needed for Integration Tests (to run a MockSolrServer) --> <!-- The following Solr / Lucene dependencies also support integration tests --> <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-core</artifactId> <version>${solr.client.version}</version> <scope>test</scope> <exclusions> <!-- Later version provided by Hibernate --> <exclusion> <groupId>org.antlr</groupId> <artifactId>antlr4-runtime</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-analyzers-icu</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-analyzers-smartcn</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-analyzers-stempel</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.exparity</groupId> <artifactId>hamcrest-date</artifactId> <version>2.0.8</version> <scope>test</scope> </dependency> <dependency> <groupId>jakarta.annotation</groupId> <artifactId>jakarta.annotation-api</artifactId> </dependency> </dependencies> </project>