[VIVO-1082] Add Maven installer for Vitro

This commit is contained in:
Graham Triggs 2016-07-06 06:19:17 +01:00
parent 61f90dd1e6
commit 7afe9de82b
12 changed files with 739 additions and 0 deletions

View file

@ -0,0 +1,21 @@
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<profiles>
<profile>
<id>defaults</id>
<properties>
<app-name>vitro</app-name>
<vitro-dir>/usr/local/vitro/home</vitro-dir>
<tomcat-dir>/usr/local/tomcat</tomcat-dir>
<default-theme>vitro</default-theme>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>defaults</activeProfile>
</activeProfiles>
</settings>

115
installer/home/pom.xml Normal file
View file

@ -0,0 +1,115 @@
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-installer-home</artifactId>
<version>1.9.0-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-installer</artifactId>
<version>1.9.0-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<name>Vitro Install Home</name>
<properties>
<default-theme>vitro</default-theme>
</properties>
<profiles>
<profile>
<id>install</id>
<activation>
<property><name>vitro-dir</name></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.5</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/home.xml</descriptor>
</descriptors>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>remove-webapp</id>
<phase>verify</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete dir="${vitro-dir}/rdf" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${vitro-dir}</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}/${project.build.finalName}</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
<plugins>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-home</artifactId>
<type>tar.gz</type>
</dependency>
</dependencies>
</project>

View file

@ -0,0 +1,22 @@
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<id>home</id>
<formats>
<format>dir</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<unpack>true</unpack>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.basedir}/src/main/resources</directory>
<outputDirectory>/</outputDirectory>
<filtered>true</filtered>
</fileSet>
</fileSets>
</assembly>

185
installer/pom.xml Normal file
View file

@ -0,0 +1,185 @@
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-installer</artifactId>
<version>1.9.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Vitro Installer</name>
<properties>
<vitro-version>${project.version}</vitro-version>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
<modules>
<module>home</module>
<module>solr</module>
<module>webapp</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-solr</artifactId>
<version>${vitro-version}</version>
<type>war</type>
</dependency>
<dependency>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-home</artifactId>
<version>${vitro-version}</version>
<type>tar.gz</type>
</dependency>
<dependency>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-api</artifactId>
<version>${vitro-version}</version>
</dependency>
<dependency>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-webapp</artifactId>
<version>${vitro-version}</version>
<type>war</type>
</dependency>
</dependencies>
</dependencyManagement>
<profiles>
<profile>
<id>skip-install</id>
<activation>
<property><name>!vitro-dir</name></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<executions>
<execution>
<id>default-compile</id>
<phase />
</execution>
<execution>
<id>default-testCompile</id>
<phase />
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>default-resources</id>
<phase />
</execution>
<execution>
<id>default-testResources</id>
<phase />
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<executions>
<execution>
<id>test</id>
<phase/>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>default-war</id>
<phase/>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>install</id>
<activation>
<property><name>vitro-dir</name></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-properties</id>
<phase>validate</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>app-name</property>
<message>You must provide an application name (app-name)</message>
</requireProperty>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

144
installer/solr/pom.xml Normal file
View file

@ -0,0 +1,144 @@
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-installer-solr</artifactId>
<version>1.9.0-SNAPSHOT</version>
<packaging>war</packaging>
<parent>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-installer</artifactId>
<version>1.9.0-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<name>Vitro Install Solr App</name>
<profiles>
<profile>
<id>package</id>
<activation>
<property><name>app-name</name></property>
</activation>
<build>
<finalName>${app-name}solr</finalName>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
<archiveClasses>false</archiveClasses>
<overlays>
<overlay>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-solr</artifactId>
<type>war</type>
</overlay>
</overlays>
<webResources>
<resource>
<directory>src/main/webResources</directory>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pinstall</id>
<activation>
<property><name>tomcat-dir</name></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>remove-webapp</id>
<phase>verify</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete dir="${tomcat-dir}/webapps/${project.build.finalName}" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<type>war</type>
<overWrite>true</overWrite>
<outputDirectory>${tomcat-dir}/webapps/${project.build.finalName}</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
<plugins>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>overlays</directory>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-solr</artifactId>
<type>war</type>
</dependency>
</dependencies>
</project>

View file

@ -0,0 +1,9 @@
<Context crossContext="true" override="true">
<Environment
type="java.lang.String"
name="solr/home"
value="${vitro-dir}/solr" override="true"/>
<!-- Disable persist sessions on shut down.-->
<Manager pathname="" />
</Context>

View file

@ -0,0 +1,13 @@
log4j.appender.AllAppender=org.apache.log4j.RollingFileAppender
log4j.appender.AllAppender.File= ${catalina.home}/logs/${app-name}solr.log
log4j.appender.AllAppender.MaxFileSize=10MB
log4j.appender.AllAppender.MaxBackupIndex=10
log4j.appender.AllAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.AllAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{1}] %m%n
log4j.rootLogger=INFO, AllAppender
# Make all of the Solr classes quieter...
log4j.logger.org.apache.solr.level = WARNING
# ...except for this one.
log4j.logger.org.apache.solr.core.SolrResourceLoader.level = INFO

149
installer/webapp/pom.xml Normal file
View file

@ -0,0 +1,149 @@
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-installer-webapp</artifactId>
<version>1.9.0-SNAPSHOT</version>
<packaging>war</packaging>
<parent>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-installer</artifactId>
<version>1.9.0-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<name>Vitro Install Web App</name>
<profiles>
<profile>
<id>package</id>
<activation>
<property><name>app-name</name></property>
</activation>
<build>
<finalName>${app-name}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
<archiveClasses>false</archiveClasses>
<overlays>
<overlay>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-webapp</artifactId>
<type>war</type>
</overlay>
</overlays>
<webResources>
<resource>
<directory>src/main/webResources</directory>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>install</id>
<activation>
<property><name>tomcat-dir</name></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>remove-webapp</id>
<phase>verify</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete dir="${tomcat-dir}/webapps/${project.build.finalName}" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<type>war</type>
<overWrite>true</overWrite>
<outputDirectory>${tomcat-dir}/webapps/${project.build.finalName}</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
<plugins>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>overlays</directory>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-api</artifactId>
</dependency>
<dependency>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-webapp</artifactId>
<type>war</type>
</dependency>
</dependencies>
</project>

View file

@ -0,0 +1,9 @@
<Context> <!-- useHttpOnly="false" -->
<Environment
type="java.lang.String"
name="vitro/home"
value="${vitro-dir}" override="true"/>
<!-- Disable persist sessions on shut down.-->
<Manager pathname="" />
</Context>

View file

@ -0,0 +1,49 @@
#
# This file sets the log levels for the Vitro webapp.
#
# There are 8 principal logging levels, as follows:
# <-- more messages ALL TRACE DEBUG INFO WARN ERROR FATAL OFF fewer messages -->
#
# The default logging level is specified on the rootLogger. Other levels can be
# set for individual classes or packages as desired.
#
# Examples of setting levels:
# log4j.logger.edu.cornell.mannlib.vitro.webapp.ConfigurationProperties=INFO
# -- sets INFO level for this one class
# log4j.logger.org.apache.catalina=INFO
# -- sets INFO level for all classes in "org.apache.catalina" package
# and any sub-packages.
#
# Documentation for this file can be found here:
# http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html#doConfigure(java.lang.String,%20org.apache.log4j.spi.LoggerRepository)
#
# More information can be found here:
# http://logging.apache.org/log4j/1.2/manual.html
#
# The "production" version of this file is log4j.properties.
# debug.log4j.properties exists will be used instead, if it exists, but is not stored in Subversion.
log4j.appender.AllAppender=org.apache.log4j.RollingFileAppender
log4j.appender.AllAppender.File= ${catalina.home}/logs/${app-name}.all.log
log4j.appender.AllAppender.MaxFileSize=10MB
log4j.appender.AllAppender.MaxBackupIndex=10
log4j.appender.AllAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.AllAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{1}] %m%n
log4j.rootLogger=INFO, AllAppender
# These classes are too chatty to display INFO messages.
log4j.logger.edu.cornell.mannlib.vitro.webapp.startup.StartupStatus=WARN
log4j.logger.edu.cornell.mannlib.vitro.webapp.servlet.setup.UpdateKnowledgeBase=WARN
log4j.logger.org.semanticweb.owlapi.rdf.rdfxml.parser=WARN
# Spring as a whole is too chatty to display INFO messages.
log4j.logger.org.springframework=WARN
# suppress odd warnings from libraries
log4j.logger.com.hp.hpl.jena.sdb.layout2.LoaderTuplesNodes=FATAL
log4j.logger.com.hp.hpl.jena.sdb.sql.SDBConnection=ERROR
log4j.logger.org.openjena.riot=FATAL
log4j.logger.org.apache.jena.riot=FATAL
log4j.logger.org.directwebremoting=FATAL

View file

@ -0,0 +1 @@
Add your theme directories here

22
pom.xml
View file

@ -69,6 +69,28 @@
</modules> </modules>
<profiles> <profiles>
<profile>
<id>installer</id>
<activation>
<property>
<name>!vitro-installer-dir</name>
</property>
</activation>
<modules>
<module>installer</module>
</modules>
</profile>
<profile>
<id>external-installer</id>
<activation>
<property>
<name>vitro-installer-dir</name>
</property>
</activation>
<modules>
<module>${vitro-installer-dir}</module>
</modules>
</profile>
<profile> <profile>
<id>doclint-java8-disable</id> <id>doclint-java8-disable</id>
<activation> <activation>