blob: 7ad9f98b9300a566b0d59ac047dc75d033320b34 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version
2.0 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 Unless required by
applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for
the specific language governing permissions and limitations under the
License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<!--
| Prerequisites: Mysql installed. Just run mvn clean install -Prun to run Alfresco
| How it works:
| By default the project is overlayed to the alfresco war which depends upon and deployed as a WAR (local development and testing purposes)
| Available properties:
| -Denv ==> toggles src/main/properties/<env>/alfresco-global.properties files (default local)
| -DrestoreVersion=<restoreVersion> - toggles profile "restore" in order to include tools/export/<restoreVersion>/restore/*.acp files in alfresco/extension/restore (default: no restore)
| -Dcustomization.name=<customizationName> - name of the jar artifact containing classes and resources for this extension |
| -Dwebapp.name=<extensionName> - name of the WAR artifact to be built (default: mcf-tests-alfresco-{version}.jar )
| DEPRECATED: -Denterprise - Includes LDAP configuration as defined in alfresco-global.properties
-->
<parent>
<groupId>org.apache.manifoldcf</groupId>
<artifactId>mcf-test-materials</artifactId>
<version>0.6</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>mcf-alfresco-war-test</artifactId>
<name>ManifoldCF - Test Materials - Alfresco WAR</name>
<packaging>war</packaging>
<url />
<description>Alfresco WAR builder</description>
<!-- oOo SINGLE POINT OF CONFIGURATION FOR COMMON ALFRESCO PROPERTIES oOo -->
<properties>
<!-- Alfresco version/edition selection -->
<alfresco.version>3.4.a</alfresco.version>
<alfresco.edition>community</alfresco.edition>
<!-- Build environment ==> src/main/properties/<env>/alfresco-global.properties is loaded -->
<env>local</env>
<!-- Webapp packaged name -->
<webapp.name>alfresco</webapp.name>
<!--
| Empty log dir creates file alfresco.log in the current root folder.
| You can also specify a meaningful log directory for the server (add a trailing slash, e.g. '/var/log/alfresco/' )
| Jetty embedded run logs by default in ${project.basedir}/alfresco.log
-->
<log.dir />
<!--
| By default the src/main/properties/local/alfresco-global.properties uses the property "alfresco.data.location" to specify where
| alf_data gets created. For env=local you can use this shortcut property below, which gets filtered in the alfresco-global.properties file
| DEFAULT: alf_data_jetty relativel to run dir
-->
<!-- For env=local DB is also configurable here. Of course keep in sync these two values otherwise you'll get integrity errors. Default Mysql-->
<alfresco.data.location>./alf_data_jetty</alfresco.data.location>
<alfresco.db.name>alf_jetty</alfresco.db.name>
<alfresco.db.url>jdbc:h2:${alfresco.data.location}/h2_data/${alfresco.db.name}</alfresco.db.url>
<alfresco.db.driver>org.h2.Driver</alfresco.db.driver>
<alfresco.db.username>alfresco</alfresco.db.username>
<alfresco.db.password>alfresco</alfresco.db.password>
<alfresco.db.hibernate.dialect>org.hibernate.dialect.H2Dialect</alfresco.db.hibernate.dialect>
<!-- H2 configuration: To be fixed <alfresco.db.url>jdbc:h2:${alfresco.data.location}/h2_data/${alfresco.db.name}</alfresco.db.url> -->
<!-- DEPRECATED -->
<desktop.action.package>org.alfresco.filesys.repo.desk</desktop.action.package>
<!--
| Uncomment this property together with the <scm> section downwards
|
| <svn.url> https://mycompany.com/repos/my-test-project </svn.url>
-->
<!--
| Uncomment this property together with the maven-release-plugin <plugin><configuration><tagBase /></configuration></plugin> section downwards
| <svn.tags.url>${svn.url}/tags</svn.tags.url>
-->
<!--
These redundancies are due to filtering issues of Maven. See here
http://maven.apache.org/plugins/maven-site-plugin/usage.html
-->
<site_pom_description>${project.description}</site_pom_description>
<site_pom_url>${project.organization.url}</site_pom_url>
<site_pom_groupId>${project.groupId}</site_pom_groupId>
<site_pom_artifactId>${project.artifactId}</site_pom_artifactId>
<site_pom_version>${project.version}</site_pom_version>
<site_tags_url>${svn.tags.url}</site_tags_url>
<site_site_url>${site.url}</site_site_url>
</properties>
<!--
| Alfresco Community dependencies are generally available in ss-public
repo. | FIXME: Alfresco enterprise dependencies are only available on
SS repo ATM. Alfresco *needs* to deliver their artifacts on (at least)
partner repos |
-->
<repositories>
<repository>
<id>alfresco-public</id>
<url>http://maven.alfresco.com/nexus/content/groups/public</url>
</repository>
<repository>
<id>alfresco-public-snapshots</id>
<url>http://maven.alfresco.com/nexus/content/groups/public-snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>alfresco-maven-repo</id>
<url>http://maven.alfresco.com/nexus/content/groups/enterprise-snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>clojars</id>
<url>http://clojars.org/repo/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>alfresco-public</id>
<url>http://maven.alfresco.com/nexus/content/groups/public</url>
</pluginRepository>
<pluginRepository>
<id>alfresco-public-snapshots</id>
<url>http://maven.alfresco.com/nexus/content/groups/public-snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<!--
| Uncomment SCM definitions in order to have mvn release:perform to actually tag the code <scm>
| <developerConnection>scm:svn:${svn.url}</developerConnection>
| <url>${svn.url}</url> </scm>
-->
<!-- Alfresco dependencies -->
<dependencies>
<!--
| Alfresco Dependencies
| NB: These files are not publicly available. Please vote for Alfresco to release them if you care :)
| Jboss alfresco build (e.g. no log4j.properties and fix for myFaces)
-->
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>alfresco</artifactId>
<version>${alfresco.version}</version>
<type>war</type>
<classifier>${alfresco.edition}</classifier>
</dependency>
<!--
All provided libs (as contained in the war dependency) but useful for
development (e.g. IDE configuration)
-->
<dependency>
<groupId>it.sk.alfresco</groupId>
<artifactId>h2-support</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.158</version>
</dependency>
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-web-client</artifactId>
<version>${alfresco.version}</version>
<scope>provided</scope>
<classifier>${alfresco.edition}</classifier>
</dependency>
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-core</artifactId>
<version>${alfresco.version}</version>
<scope>provided</scope>
<classifier>${alfresco.edition}</classifier>
</dependency>
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-repository</artifactId>
<version>${alfresco.version}</version>
<scope>provided</scope>
<classifier>${alfresco.edition}</classifier>
</dependency>
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-remote-api</artifactId>
<version>${alfresco.version}</version>
<scope>provided</scope>
<classifier>${alfresco.edition}</classifier>
</dependency>
<!--
Sample of AMP dependency that will be properly uncompressed in the
Alfresco WAR (no more need for AMP): this can be either an AMP built
with maven-amp-plugin and deployed on an accessible maven repo or a
generally available AMP previously deployed to a repo using mvn
deploy:deploy-file
<dependency>
<scope>runtime</scope>
<type>amp</type>
<artifactId>recordsmanagement</artifactId>
<version>${alfresco.version}</version>
<groupId>org.alfresco</groupId>
</dependency>
-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>${webapp.name}</finalName>
<!--
In certain cases we do build time filtering with the single sourcing
alfresco-global.properties
-->
<filters>
<filter>src/main/properties/${env}/alfresco-global.properties</filter>
</filters>
<!--
Default profile to build as an Alfresco extension - resources are
copied into classpath
-->
<resources>
<!-- By default also no content is restored -->
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/restore-context.xml</exclude>
<exclude>**/ldap-*.xml</exclude>
</excludes>
</resource>
<!--
| Include application properties file in classpath: this allows Spring contexts to have customization properties available at
| classpath:alfresco-global.properties
-->
<resource>
<directory>src/main/properties/${env}</directory>
<includes>
<include>alfresco-global.properties</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>log4j.properties</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>${project.basedir}/tools/mysql</directory>
<includes>
<include>*.sql</include>
</includes>
<filtering>true</filtering>
<targetPath>tools/mysql</targetPath>
</resource>
</resources>
<plugins>
<!-- Needed for cross OS compatibility in acp/zip encoding -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!--
useful for eclipse project configuration. Run "mvn eclipse:eclipse"
and hit "F5" on the project
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.8</version>
<!--
<configuration> <downloadSources>true</downloadSources>
</configuration>
-->
</plugin>
<!-- Add documentation locales here -->
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.0</version>
<configuration>
<locales>en</locales>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>unpack-amps</id>
<phase>process-resources</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeTypes>amp</includeTypes>
<outputDirectory>${project.build.directory}/${webapp.name}</outputDirectory>
<excludes>META*</excludes>
</configuration>
</execution>
</executions>
<dependencies>
<!--
This is required to be re-defined explicitly at plugin level as
otherwise the 'amp' extension unArchiver won't be available to the
maven-dependency-plugin
-->
<dependency>
<groupId>org.alfresco.maven.plugin</groupId>
<artifactId>maven-amp-plugin</artifactId>
<version>3.0.1</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<archiveClasses>false</archiveClasses>
<webappDirectory>target/${webapp.name}</webappDirectory>
<warSourceExcludes>tools/**</warSourceExcludes>
<webResources>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<!-- useEditMode>true</useEditMode> -->
<dryRun>true</dryRun>
<preparationGoals>clean package</preparationGoals>
<goals>install deploy cargo:undeploy cargo:deploy
site:deploy</goals>
<!-- <tagBase>${svn.tags.url}</tagBase> -->
</configuration>
</plugin>
<!--
Adds support for books PDF and RTF generation for single sourced
documentation
-->
<plugin>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<phase>pre-site</phase>
<goals>
<goal>render-books</goal>
</goals>
</execution>
</executions>
<configuration>
<!--
| Target books dir: within the site so it can be linked and
deployed | TODO: Use ${project.target.dir} or so similar property
instead of | hard wiring 'target'
-->
<generatedDocs>target/site/books</generatedDocs>
<books>
<book>
<directory>src/site</directory>
<descriptor>src/books/manual.xml</descriptor>
<formats>
<format>
<id>xdoc</id>
</format>
<format>
<id>pdf</id>
</format>
<format>
<id>rtf</id>
</format>
</formats>
</book>
</books>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<!-- Targeting 1.6 -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12</version>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jxr-maven-plugin</artifactId>
<version>2.0-beta-1</version>
</plugin>
<plugin>
<artifactId>maven-clover-plugin</artifactId>
<version>2.4</version>
</plugin>
<!--
Enable this plugin only after setting SCM connection, otherwise mvn
site will fail <plugin> <groupId>org.codehaus.mojo</groupId>
<artifactId>changelog-maven-plugin</artifactId> </plugin>
-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<version>2.4</version>
</plugin>
</plugins>
</reporting>
<!--
| Configured to deploy on SS public repository ATM. | You'd need a
valid uid/pwd in our repo |
-->
<distributionManagement>
<!--
| | Enable this repo in case of publicly redistributable artifacts
<repository> <id>yourcompany</id>
<url>scp://yourcompany/var/maven2</url> </repository>
<distributionManagement> <site> <id>yourcompany-site</id>
<url>scp://yourcompany/var/maven2-sites</url> </site>
-->
<!--
| | Enable this repo in case of non publicly redistributable
artifacts (Sourcesense private repositories via webdav) |
-->
</distributionManagement>
<!--
| Build Profiles
-->
<profiles>
<!--
| Profile to automatically restore export files committed under |
"tools/export/<restoreVersion>/export_*.[acp,xml]" and the
restore-context.xml. | Gets automatically activated specifiying a
value for the property | restoreVersion which maps to the name of the
folder. | NB: In order this to work you *MUST* export your full repo
with "export" package name
-->
<profile>
<id>restore</id>
<activation>
<property>
<name>restoreVersion</name>
</property>
</activation>
<build>
<defaultGoal>package</defaultGoal>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/restore-*.xml</include>
</includes>
</resource>
<resource>
<directory>tools/export/${restoreVersion}</directory>
<includes>
<include>**</include>
</includes>
<targetPath>alfresco/extension/restore</targetPath>
</resource>
</resources>
</build>
</profile>
<!--
Profile for deploying (only locally , due to
http://jira.codehaus.org/browse/CARGO-416) on jboss. | | FIXME: Add
<dependencies> override in order to have jboss specific
alfresco-*-jboss.war (e.g no log4j.properties and log4j jar) | being
substituted as a depenendency, and avoid log4j classCasts |
-->
<profile>
<id>jboss</id>
<!--
| By default the src/main/properties/local/alfresco-global.properties
uses the property "alfresco.data.location" to specify where |
alf_data gets created and "alfresco.db.name" for the database name.
| For local jboss deployment default creation dir (alf_data) is
under appserver $JBOSS_HOME/bin directory (as location is specified
relatively to | run dir) | | Empty log dir creates file alfresco.log
in appserver default dir. You can also specify a meaningful log
directory for the server | (add a trailing slash, e.g.
'/var/log/alfresco/' ) | | NB: Remember to grant appropriate
permissions on database you specify here by running the script found
in tools/mysql/[jetty/tomcat/jboss] | sql scripts (after editing
them), or run those you find in
target/classes/tools/[db_remove,db_setup].sql which are already
filtered according to | ' alfresco.db.name ' property. |
-->
<properties>
<alfresco.data.location>./alf_data</alfresco.data.location>
<alfresco.db.name>alf_jboss</alfresco.db.name>
<log.dir />
</properties>
<build>
<defaultGoal>cargo:deploy</defaultGoal>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/restore-context.xml</exclude>
<!--<exclude>**/ldap-*.xml</exclude>-->
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include />
</includes>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<container>
<containerId>jboss4x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.servlet.port>8080</cargo.servlet.port>
</properties>
</configuration>
<deployer>
<type>remote</type>
<deployables>
<deployable>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<type>war</type>
</deployable>
</deployables>
</deployer>
</configuration>
</plugin>
<!-- log4j.properties is excluded from source and dependencies -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<archiveClasses>false</archiveClasses>
<webappDirectory>target/${webapp.name}</webappDirectory>
<dependentWarExcludes>**/log4j.properties,**/lib/log4j*.jar,log4j.properties</dependentWarExcludes>
<warSourceExcludes>**/log4j.properties,WEB-INF/classes/tools</warSourceExcludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!--
| Profile for deploying on tomcat 5.x
|
|
-->
<profile>
<id>tomcat</id>
<!--
| By default the src/main/properties/local/alfresco-global.properties
uses the property "alfresco.data.location" to specify where |
alf_data gets created. | For tomcat deployment default creation dir
(alf_data) is under appserver $CATALINA_HOME/bin directory (as
location is specified relatively to | run dir) and db is
configurable likewhise. | Empty log dir creates file alfresco.log in
appserver default dir. You can also specify a meaningful log
directory for the server | (add a trailing slash, e.g.
'/var/log/alfresco/' ) | | NB: Remember to grant appropriate
permissions on database you specify here by running the script found
in tools/mysql/[jetty/tomcat/jboss] | mysql scripts (properly
edited) or those you find in target/tools/[db_remove,db_setup].sql
which are already filtered according to | ' alfresco.db.name '
property |
-->
<properties>
<alfresco.data.location>./alf_data</alfresco.data.location>
<alfresco.db.name>alf_tomcat</alfresco.db.name>
<log.dir />
</properties>
<build>
<defaultGoal>package</defaultGoal>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<container>
<containerId>tomcat5x</containerId>
<type>remote</type>
</container>
<!-- Configure here your Tomcat server manager credentials -->
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.username>tomcat</cargo.remote.username>
<cargo.remote.password>tomcat</cargo.remote.password>
<cargo.servlet.port>8080</cargo.servlet.port>
</properties>
</configuration>
<deployer>
<type>remote</type>
<deployables>
<deployable>
<artifactId>${project.artifactId}</artifactId>
<type>war</type>
<properties>
<context>/${webapp.name}</context>
</properties>
</deployable>
</deployables>
</deployer>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- -Pinitialize : boostraps the db (only to be used the 1st run) -->
<profile>
<id>initialize</id>
<build>
<plugins>
<!-- Cleans the alf_data folder and logs-->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<executions>
<execution>
<id>clean-execution</id>
<phase>generate-resources</phase>
<goals>
<goal>clean</goal>
</goals>
<configuration>
<filesets>
<fileset>
<directory>${alfresco.data.location}</directory>
<includes>
<include>**/*</include>
</includes>
</fileset>
<fileset>
<directory>.</directory>
<includes>
<include>**/*.log</include>
<include>*.log</include>
</includes>
</fileset>
</filesets>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>run</id>
<build>
<resources>
<resource>
<directory>jetty</directory>
<includes>
<include>jetty-env.xml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>jetty</directory>
<targetPath>WEB-INF</targetPath>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.21</version>
<executions>
<!-- Runs jetty when 'integration-test' phase is called -->
<execution>
<id>it</id>
<phase>integration-test</phase>
<goals>
<goal>run-exploded</goal>
</goals>
<configuration>
<contextPath>/${webapp.name}</contextPath>
<webApp>${project.build.directory}/${webapp.name}</webApp>
<scanIntervalSeconds>10</scanIntervalSeconds>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8080</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>