Compare commits

..

2 Commits

45 changed files with 1666 additions and 880 deletions

View File

@@ -6,44 +6,13 @@
<artifactId>alfresco-allinone-archetype</artifactId>
<packaging>maven-archetype</packaging>
<name>All-in-One Archetype from Maven Alfresco SDK</name>
<description>Sample multi-module project for All-in-One development on the Alfresco plaftorm. Includes modules for: Repository WAR overlay, Repository AMP, Share WAR overlay, Solr configuration, and embedded Tomcat runner</description>
<description>Sample multi-module project for All-in-One development on the Alfresco plaftorm. Includes modules for: Repository, AMP, Share, Solr, Web Quick Start and embedded Jetty run</description>
<parent>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-lifecycle-aggregator</artifactId>
<version>1.1.1</version>
<version>1.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>archetype-resources/pom.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>archetype-resources/pom.xml</exclude>
</excludes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<configuration>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>@@</delimiter>
</delimiters>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -10,7 +10,7 @@
<defaultValue>org.alfresco</defaultValue>
</requiredProperty>
<requiredProperty key="alfresco_target_version">
<defaultValue>4.2.e</defaultValue>
<defaultValue>4.2.c</defaultValue>
</requiredProperty>
<requiredProperty key="package">
<defaultValue>(not used)</defaultValue>
@@ -44,7 +44,7 @@
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>tomcat</directory>
<directory>jetty</directory>
<includes>
<include>**</include>
</includes>
@@ -118,7 +118,37 @@
</fileSet>
</fileSets>
</module>
<module id="wcmqs" dir="wcmqs" name="share" filtered="false">
<fileSets>
<fileSet encoding="UTF-8">
<directory>src/main/webapp</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/main/resources</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/main/webapp</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
</fileSets>
</module>
<module id="runner" dir="runner" name="runner" filtered="false">
<fileSets>
<fileSet encoding="UTF-8">
<directory>jetty</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
</fileSets>
</module>
</modules>
</archetype-descriptor>

View File

@@ -30,17 +30,17 @@
<artifactId>alfresco</artifactId>
<type>war</type>
</dependency>
<!-- Demonstrating the dependency on the repo AMP developed in the 'amp' module -->
<!-- Demonstrating the dependency on the AMP developed in the 'amp' project -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>amp</artifactId>
<version>${project.version}</version>
<type>amp</type>
</dependency>
<!-- Demonstrating the usage of a well known GA AMP (SharePoint Protocol Support) -->
<!-- Demonstrating the usage of a well known GA AMP (Web Quick Start Repository component) -->
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-spp</artifactId>
<artifactId>alfresco-wcm-quickstart-repo</artifactId>
<version>${alfresco.version}</version>
<type>amp</type>
</dependency>
@@ -76,7 +76,7 @@
</overlay>
<overlay>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-spp</artifactId>
<artifactId>alfresco-wcm-quickstart-repo</artifactId>
<type>amp</type>
</overlay>
</overlays>
@@ -84,62 +84,4 @@
</plugin>
</plugins>
</build>
<profiles>
<!-- Overrides the run profile to disable securecomms -->
<profile>
<id>run</id>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<executions>
<execution>
<id>prepare-exploded-war</id>
<goals>
<goal>exploded</goal>
</goals>
<phase>prepare-package</phase>
</execution>
<execution>
<id>default-war</id>
<configuration>
<webXml>${project.build.directory}/${project.build.finalName}-nossl/WEB-INF/web.xml</webXml>
</configuration>
</execution>
</executions>
</plugin>
<!-- Replaces web.xml where applicable, commenting out the security-constraints -->
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<executions>
<execution>
<id>disable-securecomms</id>
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<ignoreErrors>true</ignoreErrors>
<file>${project.build.directory}/${project.build.finalName}/WEB-INF/web.xml</file>
<outputDir>${project.build.directory}/${project.build.finalName}-nossl/WEB-INF/</outputDir>
<preserveDir>false</preserveDir>
<replacements>
<replacement>
<token><![CDATA[<!-- Toggle securecomms placeholder start -->]]></token>
<value><![CDATA[<!--]]></value>
</replacement>
<replacement>
<token><![CDATA[<!-- Toggle securecomms placeholder end -->]]></token>
<value><![CDATA[-->]]></value>
</replacement>
</replacements>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@@ -0,0 +1,911 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Alfresco Web Client</display-name>
<description>Alfresco Web Client</description>
<context-param>
<param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PARTIAL_STATE_SAVING_METHOD</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config-app.xml,/WEB-INF/faces-config-beans.xml,/WEB-INF/faces-config-navigation.xml,/WEB-INF/faces-config-common.xml,/WEB-INF/faces-config-repo.xml,/WEB-INF/faces-config-wcm.xml,/WEB-INF/faces-config-custom.xml</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
<param-value>false</param-value>
<description>This is an EXPERIMENTAL feature, so leave it off for now!</description>
</context-param>
<context-param>
<param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
<param-value>false</param-value>
<description>Stop MyFaces from Serializing the state to the session</description>
</context-param>
<!-- TODO: Change this to false for production -->
<context-param>
<param-name>org.apache.myfaces.PRETTY_HTML</param-name>
<param-value>true</param-value>
<description>
If true, rendered HTML code will be formatted, so that it is "human readable".
i.e. additional line separators and whitespace will be written, that do not
influence the HTML code.
Default: "true"
</description>
</context-param>
<context-param>
<param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
<param-value>false</param-value>
<description>
If true, a javascript function will be rendered that is able to restore the
former vertical scroll on every request. Convenient feature if you have pages
with long lists and you do not want the browser page to always jump to the top
if you trigger a link or button action that stays on the same page.
Default: "false"
</description>
</context-param>
<!-- Spring Application Context location -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/web-application-context.xml</param-value>
<description>Spring config file location</description>
</context-param>
<context-param>
<param-name>log4jExposeWebAppRoot</param-name>
<param-value>false</param-value>
<description>Do not try to resolve web app root as file</description>
</context-param>
<!-- These were previously init params for the WebDAV servlet,
but since they are also needed to MT-enable the
ExternalAccess servlet, I have made them context wide. -->
<context-param>
<param-name>store</param-name>
<param-value>workspace://SpacesStore</param-value>
</context-param>
<context-param>
<param-name>rootPath</param-name>
<param-value>/app:company_home</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
<param-value>false</param-value>
</context-param>
<!-- Activiti context param placeholder -->
<context-param>
<param-name>com.ibm.ws.jsf.loadExternalDtd</param-name>
<param-value>false</param-value>
<description>Sets "http://apache.org/xml/features/nonvalidating/load-external-dtd" feature on the SAXParser to false if this parameter is false</description>
</context-param>
<filter>
<filter-name>Authentication Filter</filter-name>
<description>Authentication filter mapped only to faces URLs. Other URLs generally use proprietary means to talk to the AuthenticationComponent</description>
<filter-class>org.alfresco.repo.web.filter.beans.BeanProxyFilter</filter-class>
<init-param>
<param-name>beanName</param-name>
<param-value>AuthenticationFilter</param-value>
</init-param>
</filter>
<filter>
<filter-name>Global Authentication Filter</filter-name>
<description>Authentication filter mapped to all authenticated URLs. Mainly for SSO support</description>
<filter-class>org.alfresco.repo.web.filter.beans.BeanProxyFilter</filter-class>
<init-param>
<param-name>beanName</param-name>
<param-value>GlobalAuthenticationFilter</param-value>
</init-param>
</filter>
<filter>
<filter-name>WebScript Authentication Filter</filter-name>
<description>Authentication filter mapped to web script URLs. Mainly for SSO support</description>
<filter-class>org.alfresco.repo.web.filter.beans.BeanProxyFilter</filter-class>
<init-param>
<param-name>beanName</param-name>
<param-value>WebscriptAuthenticationFilter</param-value>
</init-param>
</filter>
<filter>
<filter-name>WebDAV Authentication Filter</filter-name>
<filter-class>org.alfresco.repo.web.filter.beans.BeanProxyFilter</filter-class>
<init-param>
<param-name>beanName</param-name>
<param-value>WebDavAuthenticationFilter</param-value>
</init-param>
</filter>
<filter>
<filter-name>Admin Authentication Filter</filter-name>
<filter-class>org.alfresco.web.app.servlet.AdminAuthenticationFilter</filter-class>
</filter>
<filter>
<filter-name>CacheExpiresFilter</filter-name>
<description>Set HTTP cache Expires header 30 days forward for a mapping.</description>
<filter-class>org.alfresco.web.scripts.servlet.StaticAssetCacheFilter</filter-class>
<init-param>
<param-name>expires</param-name>
<param-value>30</param-value>
<description>Add an Expires Header 30 days forward</description>
</init-param>
</filter>
<filter>
<filter-name>Global Localization Filter</filter-name>
<description>Sets fallback default locale for ALL requests</description>
<filter-class>org.alfresco.web.app.servlet.GlobalLocalizationFilter</filter-class>
</filter>
<filter>
<filter-name>JSF Session Synchronized Filter</filter-name>
<filter-class>org.alfresco.repo.web.filter.beans.SessionSynchronizedFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Global Localization Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Global Authentication Filter</filter-name>
<url-pattern>/navigate/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Global Authentication Filter</filter-name>
<url-pattern>/command/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Global Authentication Filter</filter-name>
<url-pattern>/download/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Global Authentication Filter</filter-name>
<url-pattern>/template/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Global Authentication Filter</filter-name>
<url-pattern>/n/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Global Authentication Filter</filter-name>
<url-pattern>/c/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Global Authentication Filter</filter-name>
<url-pattern>/t/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Global Authentication Filter</filter-name>
<url-pattern>/d/*</url-pattern>
</filter-mapping>
<!-- The WebScript Authentication filter sits in front of web service URLs in addition to the global authentication filter -->
<filter-mapping>
<filter-name>WebScript Authentication Filter</filter-name>
<url-pattern>/wcservice/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>WebScript Authentication Filter</filter-name>
<url-pattern>/wcs/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Global Authentication Filter</filter-name>
<url-pattern>/wcservice/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Global Authentication Filter</filter-name>
<url-pattern>/wcs/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Global Authentication Filter</filter-name>
<url-pattern>/ajax/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Global Authentication Filter</filter-name>
<url-pattern>/faces/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Authentication Filter</filter-name>
<url-pattern>/faces/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>WebDAV Authentication Filter</filter-name>
<url-pattern>/webdav/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Admin Authentication Filter</filter-name>
<url-pattern>/faces/jsp/admin/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Admin Authentication Filter</filter-name>
<url-pattern>/faces/jsp/categories/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Admin Authentication Filter</filter-name>
<url-pattern>/faces/jsp/groups/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Admin Authentication Filter</filter-name>
<url-pattern>/faces/jsp/users/delete-user.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Admin Authentication Filter</filter-name>
<url-pattern>/faces/jsp/users/users.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Admin Authentication Filter</filter-name>
<url-pattern>/faces/jsp/admin/system-info.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>JSF Session Synchronized Filter</filter-name>
<url-pattern>/faces/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CacheExpiresFilter</filter-name>
<url-pattern>*.jpg</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CacheExpiresFilter</filter-name>
<url-pattern>*.png</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CacheExpiresFilter</filter-name>
<url-pattern>*.gif</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CacheExpiresFilter</filter-name>
<url-pattern>*.css</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CacheExpiresFilter</filter-name>
<url-pattern>*.js</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!-- Spring Context Loader listener - can disable loading of context if runtime config changes are needed -->
<listener>
<listener-class>org.alfresco.web.app.ContextLoaderListener</listener-class>
</listener>
<!-- Web Application Context listener - session create/destroy debugging and bootstrap Spring init -->
<listener>
<listener-class>org.alfresco.web.app.ContextListener</listener-class>
</listener>
<!-- WebDAV session listener - ensures that no locked resources is left after session expires -->
<listener>
<listener-class>org.alfresco.repo.webdav.WebDAVSessionListener</listener-class>
</listener>
<!-- Web Services context listener for OpenCMIS -->
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<!-- Activiti listener placeholder -->
<!-- Faces Servlet -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>uploadFile</servlet-name>
<servlet-class>org.alfresco.web.app.servlet.UploadFileServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>uploadContent</servlet-name>
<servlet-class>org.alfresco.web.app.servlet.UploadContentServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>downloadContent</servlet-name>
<servlet-class>org.alfresco.web.app.servlet.DownloadContentServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>downloadRawContent</servlet-name>
<servlet-class>org.alfresco.web.app.servlet.DownloadRawContentServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>guestDownloadContent</servlet-name>
<servlet-class>org.alfresco.web.app.servlet.GuestDownloadContentServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>guestTemplateContent</servlet-name>
<servlet-class>org.alfresco.web.app.servlet.GuestTemplateContentServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>externalAccess</servlet-name>
<servlet-class>org.alfresco.web.app.servlet.ExternalAccessServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>templateContent</servlet-name>
<servlet-class>org.alfresco.web.app.servlet.TemplateContentServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>commandServlet</servlet-name>
<servlet-class>org.alfresco.web.app.servlet.CommandServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ajaxServlet</servlet-name>
<servlet-class>org.alfresco.web.app.servlet.ajax.AjaxServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>axis</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>6</load-on-startup>
</servlet>
<servlet>
<servlet-name>WebDAV</servlet-name>
<servlet-class>org.alfresco.repo.webdav.WebDAVServlet</servlet-class>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet>
<servlet-name>apiServlet</servlet-name>
<servlet-class>org.springframework.extensions.webscripts.servlet.WebScriptServlet</servlet-class>
<init-param>
<param-name>authenticator</param-name>
<param-value>webscripts.authenticator.basic</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>wcapiServlet</servlet-name>
<servlet-class>org.springframework.extensions.webscripts.servlet.WebScriptServlet</servlet-class>
<init-param>
<param-name>authenticator</param-name>
<param-value>webscripts.authenticator.webclient</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>portalapiServlet</servlet-name>
<servlet-class>org.springframework.extensions.webscripts.servlet.WebScriptServlet</servlet-class>
<init-param>
<param-name>authenticator</param-name>
<param-value>webscripts.authenticator.webclient</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>facebookServlet</servlet-name>
<servlet-class>org.alfresco.repo.web.scripts.facebook.FacebookServlet</servlet-class>
<init-param>
<param-name>authenticator</param-name>
<param-value>webscripts.authenticator.facebook</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>fbapiServlet</servlet-name>
<servlet-class>org.alfresco.repo.web.scripts.facebook.FacebookAPIServlet</servlet-class>
<init-param>
<param-name>authenticator</param-name>
<param-value>webscripts.authenticator.facebook</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>proxyServlet</servlet-name>
<servlet-class>org.alfresco.web.app.servlet.HTTPProxyServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>workflowDefinitionImageServlet</servlet-name>
<servlet-class>org.alfresco.web.app.servlet.WorkflowDefinitionImageServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>JBPMDeployProcessServlet</servlet-name>
<servlet-class>org.alfresco.web.app.servlet.JBPMDeployProcessServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>CMISFileShareServlet</servlet-name>
<servlet-class>org.apache.chemistry.opencmis.browser.BrowseServlet</servlet-class>
<init-param>
<param-name>auxroot</param-name>
<param-value>cmisfs/browser/</param-value>
</init-param>
<init-param>
<param-name>allow</param-name>
<param-value>http.*</param-value>
</init-param>
<init-param>
<param-name>stylesheet:application/atomsvc+xml</param-name>
<param-value>/cmisfs/stylesheets/service.xsl</param-value>
</init-param>
<init-param>
<param-name>stylesheet:application/atom+xml;type=feed</param-name>
<param-value>/cmisfs/stylesheets/feed.xsl</param-value>
</init-param>
<init-param>
<param-name>stylesheet:application/cmistree+xml</param-name>
<param-value>/cmisfs/stylesheets/feed.xsl</param-value>
</init-param>
<init-param>
<param-name>stylesheet:application/atom+xml;type=entry</param-name>
<param-value>/cmisfs/stylesheets/entry.xsl</param-value>
</init-param>
<init-param>
<param-name>stylesheet:application/cmisallowableactions+xml</param-name>
<param-value>/cmisfs/stylesheets/actions.xsl</param-value>
</init-param>
<init-param>
<param-name>stylesheet:application/cmisacl+xml</param-name>
<param-value>/cmisfs/stylesheets/acl.xsl</param-value>
</init-param>
<init-param>
<param-name>override-stylesheet:renditions</param-name>
<param-value>/cmisfs/stylesheets/renditions.xsl</param-value>
</init-param>
<init-param>
<param-name>override-stylesheet:relationships</param-name>
<param-value>/cmisfs/stylesheets/relationships.xsl</param-value>
</init-param>
<init-param>
<param-name>override-stylesheet:thumbnails</param-name>
<param-value>/cmisfs/stylesheets/thumbnails.xsl</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>cmisws</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>7</load-on-startup>
</servlet>
<servlet>
<servlet-name>cmisatom</servlet-name>
<servlet-class>org.apache.chemistry.opencmis.server.impl.atompub.CmisAtomPubServlet</servlet-class>
<init-param>
<param-name>callContextHandler</param-name>
<param-value>org.apache.chemistry.opencmis.server.shared.BasicAuthCallContextHandler</param-value>
</init-param>
<load-on-startup>8</load-on-startup>
</servlet>
<servlet>
<servlet-name>cmisbrowser</servlet-name>
<servlet-class>org.apache.chemistry.opencmis.server.impl.browser.CmisBrowserBindingServlet</servlet-class>
<init-param>
<param-name>callContextHandler</param-name>
<param-value>org.apache.chemistry.opencmis.server.shared.BasicAuthCallContextHandler</param-value>
</init-param>
<load-on-startup>8</load-on-startup>
</servlet>
<servlet>
<servlet-name>cmistck</servlet-name>
<servlet-class>org.apache.chemistry.opencmis.tck.runner.WebRunnerServlet</servlet-class>
<load-on-startup>8</load-on-startup>
</servlet>
<servlet>
<servlet-name>authenticatorServlet</servlet-name>
<servlet-class>org.alfresco.repo.web.scripts.servlet.AuthenticatorServlet</servlet-class>
</servlet>
<!-- Activiti servlet placeholder -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>uploadFile</servlet-name>
<url-pattern>/uploadFileServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>uploadContent</servlet-name>
<url-pattern>/upload/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>downloadContent</servlet-name>
<url-pattern>/download/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>downloadContent</servlet-name>
<url-pattern>/d/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>downloadRawContent</servlet-name>
<url-pattern>/dr</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>guestDownloadContent</servlet-name>
<url-pattern>/guestDownload/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>guestDownloadContent</servlet-name>
<url-pattern>/gd/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>templateContent</servlet-name>
<url-pattern>/template/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>templateContent</servlet-name>
<url-pattern>/t/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>guestTemplateContent</servlet-name>
<url-pattern>/guestTemplate/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>guestTemplateContent</servlet-name>
<url-pattern>/gt/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>externalAccess</servlet-name>
<url-pattern>/navigate/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>externalAccess</servlet-name>
<url-pattern>/n/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>commandServlet</servlet-name>
<url-pattern>/command/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>commandServlet</servlet-name>
<url-pattern>/c/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ajaxServlet</servlet-name>
<url-pattern>/ajax/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>axis</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/cmis/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>WebDAV</servlet-name>
<url-pattern>/webdav/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>apiServlet</servlet-name>
<url-pattern>/service/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>apiServlet</servlet-name>
<url-pattern>/s/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>wcapiServlet</servlet-name>
<url-pattern>/wcservice/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>wcapiServlet</servlet-name>
<url-pattern>/wcs/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>portalapiServlet</servlet-name>
<url-pattern>/168service/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>portalapiServlet</servlet-name>
<url-pattern>/168s/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>facebookServlet</servlet-name>
<url-pattern>/facebook/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>facebookServlet</servlet-name>
<url-pattern>/fb/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>fbapiServlet</servlet-name>
<url-pattern>/fbservice/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>fbapiServlet</servlet-name>
<url-pattern>/fbs/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>proxyServlet</servlet-name>
<url-pattern>/proxy</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>JBPMDeployProcessServlet</servlet-name>
<url-pattern>/jbpm/deployprocess</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>workflowDefinitionImageServlet</servlet-name>
<url-pattern>/workflowdefinitionimage/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>CMISFileShareServlet</servlet-name>
<url-pattern>/cmisbrowse</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cmisws</servlet-name>
<url-pattern>/cmisws/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cmisatom</servlet-name>
<url-pattern>/cmisatom/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cmisbrowser</servlet-name>
<url-pattern>/cmisbrowser/*</url-pattern>
</servlet-mapping>
<!-- The CMIS TCK is deactivated by default. -->
<!-- CMISTCK
<servlet-mapping>
<servlet-name>cmistck</servlet-name>
<url-pattern>/cmistck</url-pattern>
</servlet-mapping>
CMISTCK -->
<!-- Activiti servlet mapping placeholder -->
<session-config>
<session-timeout>60</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/jsp/error.jsp</location>
</error-page>
<resource-ref>
<description>The Alfresco database connection</description>
<res-ref-name>jdbc/dataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Unshareable</res-sharing-scope>
</resource-ref>
<!--
<security-constraint>
<web-resource-collection>
<web-resource-name>SOLR</web-resource-name>
<url-pattern>/service/api/solr/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>repoclient</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>SOLR</web-resource-name>
<url-pattern>/s/api/solr/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>repoclient</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>SOLR</web-resource-name>
<url-pattern>/wcservice/api/solr/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>repoclient</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>SOLR</web-resource-name>
<url-pattern>/wcs/api/solr/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>repoclient</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Repository</realm-name>
</login-config>
<security-role>
<role-name>repoclient</role-name>
</security-role>
-->
<env-entry>
<description>A flag that globally enables or disables startup of the major Alfresco subsystems.</description>
<env-entry-name>properties/startup.enable</env-entry-name>
<env-entry-value>true</env-entry-value>
<env-entry-type>java.lang.Boolean</env-entry-type>
</env-entry>
<env-entry>
<description>The filesystem directory below which content and index data is stored. Should be on a shared disk
if this is a clustered installation.</description>
<env-entry-name>properties/dir.root</env-entry-name>
<env-entry-value/> <!-- Empty value included for JBoss compatibility -->
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
<env-entry>
<description>The fully qualified name of a org.hibernate.dialect.Dialect subclass that allows Hibernate to
generate SQL optimized for a particular relational database. Choose from org.hibernate.dialect.DerbyDialect,
org.hibernate.dialect.MySQLInnoDBDialect,
org.alfresco.repo.domain.hibernate.dialect.AlfrescoOracle9Dialect,
org.alfresco.repo.domain.hibernate.dialect.AlfrescoSybaseAnywhereDialect,
org.alfresco.repo.domain.hibernate.dialect.AlfrescoSQLServerDialect, org.hibernate.dialect.PostgreSQLDialect</description>
<env-entry-name>properties/hibernate.dialect</env-entry-name>
<env-entry-value/> <!-- Empty value included for JBoss compatibility -->
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
<env-entry>
<description>Mapping from tokens in Hibernate queries to SQL tokens. For PostgreSQL, set this to "true
TRUE, false FALSE".</description>
<env-entry-name>properties/hibernate.query.substitutions</env-entry-name>
<env-entry-value/> <!-- Empty value included for JBoss compatibility -->
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
<env-entry>
<description>Enable use of JDBC3 PreparedStatement.getGeneratedKeys() to retrieve natively generated keys
after insert. Requires JDBC3+ driver. Set to false if your driver has problems with the Hibernate identifier
generators. By default, tries to determine the driver capabilities using connection metadata. </description>
<env-entry-name>properties/hibernate.jdbc.use_get_generated_keys</env-entry-name>
<env-entry-value/> <!-- Empty value included for JBoss compatibility -->
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
<env-entry>
<description>Qualify unqualified table names with the given schema/tablespace in generated SQL. It may be
necessary to set this when the target database has more than one schema.</description>
<env-entry-name>properties/hibernate.default_schema</env-entry-name>
<env-entry-value/> <!-- Empty value included for JBoss compatibility -->
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
</web-app>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure id="Server" class="org.mortbay.jetty.Server">
<New id="myDataSource"
class="org.mortbay.jetty.plus.naming.Resource">
<Arg>jdbc/dataSource</Arg>
<Arg>
<New class="${alfresco.db.datasource.class}">
<Set name="URL">${alfresco.db.url}</Set>
<Set name="User">${alfresco.db.username}</Set>
<Set name="Password">${alfresco.db.password}</Set>
</New>
</Arg>
</New>
</Configure>

View File

@@ -13,8 +13,10 @@
</parent>
<!--
Following dependencies are needed for compiling Java code in src/main/java; <scope>provided</scope>
is inherited for each of the following; for more info, please refer to alfresco-integration-parent
Following dependencies are needed for compiling
Java code in src/main/java; <scope>provided</scope>
is inherited for each of the following; for more
info, please refer to alfresco-integration-parent
POM definition
@TODO - document
-->
@@ -26,14 +28,10 @@
</dependencies>
<properties>
<!-- Defines the target WAR artifactId to run this amp, only used with the -Pamp-to-war switch
. | Allowed values: alfresco | share. Defaults to a repository AMP, but could point to your custom corporate Alfresco WAR -->
<alfresco.client.war>${alfresco_target_amp_client_war}</alfresco.client.war>
<!-- Defines the target WAR groupId to run this amp, only used with the -Pamp-to-war switch
. | Could be org.alfresco | org.alfresco.enterprise or your corporate groupId -->
<!-- <alfresco.client.war.groupId>org.alfresco</alfresco.client.war.groupId> -->
<!-- Defines the target WAR version to run this amp, only used with the -Pamp-to-war switch -->
<!-- <alfresco.client.war.version>${alfresco.version}</alfresco.client.war.version> -->
<!-- This property allow to switch Repo AMP vs Share AMP.
Set alfresco.client.war=share to run this AMP against Share
-->
<alfresco.client.war>alfresco</alfresco.client.war>
</properties>
</project>

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="${alfresco.client.war.folder}" path="${alfresco.client.contextPath}">
<!--
<Environment override="false" type="java.lang.Boolean" name="properties/startup.enable" description="A flag that globally enables or disables startup of the major Alfresco subsystems." value="true"/>
<Environment override="false" type="java.lang.String" name="properties/dir.root" description="The filesystem directory below which content and index data is stored. Should be on a shared disk if this is a clustered installation."/>
<Environment override="false" type="java.lang.String" name="properties/hibernate.dialect" description="The fully qualified name of a org.hibernate.dialect.Dialect subclass that allows Hibernate to generate SQL optimized for a particular relational database. Choose from org.hibernate.dialect.DerbyDialect, org.hibernate.dialect.MySQLInnoDBDialect, org.alfresco.repo.domain.hibernate.dialect.AlfrescoOracle9Dialect, org.alfresco.repo.domain.hibernate.dialect.AlfrescoSybaseAnywhereDialect, org.alfresco.repo.domain.hibernate.dialect.AlfrescoSQLServerDialect, org.hibernate.dialect.PostgreSQLDialect"/>
<Environment override="false" type="java.lang.String" name="properties/hibernate.query.substitutions" description="Mapping from tokens in Hibernate queries to SQL tokens. For PostgreSQL, set this to &quot;true TRUE, false FALSE&quot;."/>
<Environment override="false" type="java.lang.Boolean" name="properties/hibernate.jdbc.use_get_generated_keys" description="Enable use of JDBC3 PreparedStatement.getGeneratedKeys() to retrieve natively generated keys after insert. Requires JDBC3+ driver. Set to false if your driver has problems with the Hibernate identifier generators. By default, tries to determine the driver capabilities using connection metadata."/>
<Environment override="false" type="java.lang.String" name="properties/hibernate.default_schema" description="Qualify unqualified table names with the given schema/tablespace in generated SQL. It may be necessary to set this when the target database has more than one schema."/>
-->
</Context>

View File

@@ -11,25 +11,20 @@
<parent>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-sdk-parent</artifactId>
<version>@@alfresco.sdk.parent.version@@</version>
<version>1.0</version>
</parent>
<!--
| SDK properties have sensible defaults in the SDK parent, but you can override the properties below to use another version.
| SDK properties have sensible defaults in the SDK parent,
| but you can override the properties below to use another version.
| For more available properties see the alfresco-sdk-parent POM.
-->
<properties>
<!--
| Defines the Alfresco GroupId \ Edition to work against. Allowed values are: org.alfresco | org.alfresco.enterprise
| NOTE: Please Refer to Alfresco Support for access to Enterprise artifacts -->
<alfresco.groupId>${alfresco_target_groupId}</alfresco.groupId>
<!-- Defines the Alfresco version to work against. Allowed values are: org.alfresco | org.alfresco.enterprise -->
<alfresco.version>${alfresco_target_version}</alfresco.version>
<!-- This control the root logging level for all apps -->
<app.log.root.level>WARN</app.log.root.level>
<!-- This controls the default data location for dir.root -->
<alfresco.data.location>alf_data_dev</alfresco.data.location>
<!-- This controls which properties will be picked in multi-enviromment build -->
<!-- This controls which properties will be picked in src/test/properties for embedded run -->
<env>local</env>
</properties>
@@ -51,21 +46,17 @@
</dependencies>
</dependencyManagement>
<!-- This repository is only needed to retrieve Alfresco parent POM.
NOTE: This can be removed when/if Alfresco will be on Maven Central
NOTE: The repository to be used for Alfresco Enterprise artifacts is
https://artifacts.alfresco.com/nexus/content/groups/private/. Please check
with Alfresco Support to get credentials to add to your ~/.m2/settings.xml
if you are a Enterprise customer or Partner
-->
<!--
No more repos are needed since they will be inherited by the parent POM.
This is needed to download the alfresco-plaftorm POM.
-->
<repositories>
<repository>
<id>alfresco-public</id>
<id>alfresco-artifacts</id>
<url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
</repository>
<repository>
<id>alfresco-public-snapshots</id>
<id>alfresco-artifacts-snapshots</id>
<url>https://artifacts.alfresco.com/nexus/content/groups/public-snapshots</url>
</repository>
</repositories>

View File

@@ -0,0 +1,34 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure id="Server" class="org.mortbay.jetty.Server">
<New id="myDataSource" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>jdbc/dataSource</Arg>
<Arg>
<New class="${alfresco.db.datasource.class}">
<Set name="URL">${alfresco.db.url}</Set>
<Set name="User">${alfresco.db.username}</Set>
<Set name="Password">${alfresco.db.password}</Set>
</New>
</Arg>
</New>
<Call name="addConnector">
<Arg>
<New class="org.mortbay.jetty.nio.SelectChannelConnector">
<Set name="host">
<Property name="jetty.host" default="${runner.host}" />
</Set>
<Set name="port">
<Property name="jetty.port" default="${runner.port}" />
</Set>
<Set name="maxIdleTime">300000</Set>
<Set name="Acceptors">2</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">8443</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>
</Configure>

View File

@@ -0,0 +1,10 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Alfresco Runner</display-name>
<description>Alfresco Runner</description>
</web-app>

View File

@@ -2,9 +2,9 @@
<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>
<artifactId>${artifactId}</artifactId>
<name>Alfresco, Share and Solr Tomcat Runner</name>
<name>Alfresco and Share Runner</name>
<packaging>pom</packaging>
<description>Alfresco, Share and Solr Tomcat Runner</description>
<description>Alfresco and Share Runner</description>
<parent>
<groupId>${groupId}</groupId>
@@ -15,49 +15,58 @@
<profiles>
<profile>
<id>run</id>
<activation>
<property>
<name>run</name>
</property>
</activation>
<properties>
<solr.project.dir>${project.basedir}/../solr</solr.project.dir>
<alfresco.solr.dir>${project.basedir}/../solr/solr_home</alfresco.solr.dir>
<runner.host>127.0.0.1</runner.host>
<runner.port>8080</runner.port>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<executions>
<execution>
<id>run-wars</id>
<goals>
<goal>run-war-only</goal>
</goals>
<id>run</id>
<goals><goal>run</goal></goals>
<phase>integration-test</phase>
</execution>
</executions>
<configuration>
<!-- Runs Solr as the "fake" main webapp. This is useful due to the currently poor OOTB zip packaging of Alfresco Solr -->
<warDirectory>${solr.project.dir}/target/solr-overlay</warDirectory>
<path>/solr</path>
<!-- Following 3 properties set an empty ROOT context,
which is mandatory to run jetty:run plugin -->
<contextPath>/</contextPath>
<webAppSourceDirectory>.</webAppSourceDirectory>
<webXml>jetty/root-web.xml</webXml>
<contextHandlers>
<contextHandler implementation="org.mortbay.jetty.webapp.WebAppContext">
<war>${project.basedir}/../alfresco/target/alfresco.war</war>
<contextPath>/alfresco</contextPath>
</contextHandler>
<contextHandler implementation="org.mortbay.jetty.webapp.WebAppContext">
<war>${alfresco.solr.dir}/apache-solr-1.4.1-overlay.war</war>
<contextPath>/solr</contextPath>
</contextHandler>
<contextHandler implementation="org.mortbay.jetty.webapp.WebAppContext">
<war>${project.basedir}/../share/target/share.war</war>
<contextPath>/share</contextPath>
</contextHandler>
<contextHandler implementation="org.mortbay.jetty.webapp.WebAppContext">
<war>${project.basedir}/../wcmqs/target/wcmqs.war</war>
<contextPath>/wcmqs</contextPath>
</contextHandler>
</contextHandlers>
<systemProperties>
<solr.solr.home>${solr.project.dir}/solr_home</solr.solr.home>
<systemProperty>
<name>solr.solr.home</name>
<value>${alfresco.solr.dir}</value>
</systemProperty>
</systemProperties>
<!-- Configures the custom Alfresco and Share to run as embedded webapps -->
<webapps>
<webapp>
<groupId>${project.groupId}</groupId>
<artifactId>alfresco</artifactId>
<version>${project.version}</version>
<type>war</type>
<asWebapp>true</asWebapp>
<contextPath>alfresco</contextPath>
</webapp>
<webapp>
<groupId>${project.groupId}</groupId>
<artifactId>share</artifactId>
<version>${project.version}</version>
<type>war</type>
<asWebapp>true</asWebapp>
<contextPath>share</contextPath>
</webapp>
</webapps>
</configuration>
</plugin>
</plugins>

View File

@@ -19,8 +19,14 @@
<artifactId>share</artifactId>
<type>war</type>
</dependency>
<!-- Here you can add your Share AMP dependencies -->
<!-- Demonstrating the usage of a well known GA AMP (Web Quick Start
Share component) -->
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-wcm-quickstart-share</artifactId>
<version>${alfresco.version}</version>
<type>amp</type>
</dependency>
</dependencies>
<build>
<plugins>
@@ -44,7 +50,12 @@
<!-- To allow inclusion of META-INF -->
<excludes/>
</overlay>
<!-- Add / order here the Share AMPs declared above -->
<!-- Add / order your AMPs here -->
<overlay>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-wcm-quickstart-share</artifactId>
<type>amp</type>
</overlay>
</overlays>
</configuration>
</plugin>

View File

@@ -72,6 +72,12 @@
<outputDirectory>${alfresco.solr.war.overlay}/WEB-INF</outputDirectory>
<overwrite>true</overwrite>
<resources>
<resource>
<directory>src/main/webapp/WEB-INF</directory>
<includes>
<include>web.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
@@ -82,34 +88,6 @@
</execution>
</executions>
</plugin>
<!-- Replaces web.xml where applicable, commenting out the security-constraints -->
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<executions>
<execution>
<id>disable-securecomms</id>
<phase>process-resources</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<ignoreErrors>true</ignoreErrors>
<file>${alfresco.solr.war.overlay}/WEB-INF/web.xml</file>
<replacements>
<replacement>
<token><![CDATA[<security-constraint>]]></token>
<value><![CDATA[<!-- <security-constraint>]]></value>
</replacement>
<replacement>
<token><![CDATA[</security-role>]]></token>
<value><![CDATA[</security-role> -->]]></value>
</replacement>
</replacements>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
@@ -167,5 +145,4 @@
<type>zip</type>
</dependency>
</dependencies>
</project>

View File

@@ -128,7 +128,7 @@
-->
<!--<mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>-->
<!--
This option specifies which Lucene LockFactory implementation to use.
@@ -210,17 +210,17 @@
</mainIndex>
<!-- Enables JMX if and only if an existing MBeanServer is found, use this
<!-- Enables JMX if and only if an existing MBeanServer is found, use this
if you want to configure JMX through JVM parameters. Remove this to disable
exposing Solr configuration and statistics to JMX.
If you want to connect to a particular server, specify the agentId
e.g. <jmx agentId="myAgent" />
If you want to connect to a particular server, specify the agentId
e.g. <jmx agentId="myAgent" />
If you want to start a new MBeanServer, specify the serviceUrl
e.g <jmx serviceUrl="service:jmx:rmi:///jndi/rmi://localhost:9999/solr"/>
If you want to start a new MBeanServer, specify the serviceUrl
e.g <jmx serviceUrl="service:jmx:rmi:///jndi/rmi://localhost:9999/solr"/>
For more details see http://wiki.apache.org/solr/SolrJmx
For more details see http://wiki.apache.org/solr/SolrJmx
-->
<jmx />
@@ -384,11 +384,6 @@
initialSize="100"
autowarmCount="0"
/>
<cache name="alfrescoArrayListCache"
class="org.alfresco.solr.ArrayListCache"
/>
<cache name="alfrescoAuthorityCache"
class="solr.FastLRUCache"
@@ -406,14 +401,6 @@
regenerator="org.alfresco.solr.FilterCacheRegenerator"
/>
<!-- No regnerator or warming is required - this will be populated by the authority cache regenration -->
<cache name="alfrescoReaderToAclIdsCache"
class="solr.FastLRUCache"
size="${solr.readerToAclIdsCache.size:512}"
initialSize="${solr.readerToAclIdsCache.initialSize:512}"
autowarmCount="0"
/>
<listener event="newSearcher" class="org.alfresco.solr.AlfrescoSolrEventListener">
</listener>

View File

@@ -53,22 +53,21 @@ alfresco.workQueueSize=-1
alfresco.maxTotalConnections=40
alfresco.maxHostConnections=40
alfresco.socketTimeout=60000
# SOLR caching
solr.filterCache.size=64
solr.filterCache.initialSize=64
solr.queryResultCache.size=64
solr.queryResultCache.initialSize=64
solr.documentCache.size=64
solr.documentCache.initialSize=64
solr.filterCache.size=512
solr.filterCache.initialSize=512
solr.queryResultCache.size=512
solr.queryResultCache.initialSize=512
solr.documentCache.size=512
solr.documentCache.initialSize=512
solr.queryResultMaxDocsCached=200
solr.authorityCache.size=64
solr.authorityCache.initialSize=64
solr.pathCache.size=64
solr.pathCache.initialSize=64
solr.authorityCache.size=512
solr.authorityCache.initialSize=512
solr.pathCache.size=512
solr.pathCache.initialSize=512
# SOLR

View File

@@ -128,7 +128,7 @@
-->
<!--<mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>-->
<!--
This option specifies which Lucene LockFactory implementation to use.
@@ -210,17 +210,17 @@
</mainIndex>
<!-- Enables JMX if and only if an existing MBeanServer is found, use this
<!-- Enables JMX if and only if an existing MBeanServer is found, use this
if you want to configure JMX through JVM parameters. Remove this to disable
exposing Solr configuration and statistics to JMX.
If you want to connect to a particular server, specify the agentId
e.g. <jmx agentId="myAgent" />
If you want to connect to a particular server, specify the agentId
e.g. <jmx agentId="myAgent" />
If you want to start a new MBeanServer, specify the serviceUrl
e.g <jmx serviceUrl="service:jmx:rmi:///jndi/rmi://localhost:9999/solr"/>
If you want to start a new MBeanServer, specify the serviceUrl
e.g <jmx serviceUrl="service:jmx:rmi:///jndi/rmi://localhost:9999/solr"/>
For more details see http://wiki.apache.org/solr/SolrJmx
For more details see http://wiki.apache.org/solr/SolrJmx
-->
<jmx />
@@ -385,11 +385,6 @@
autowarmCount="0"
/>
<cache name="alfrescoArrayListCache"
class="org.alfresco.solr.ArrayListCache"
/>
<cache name="alfrescoAuthorityCache"
class="solr.FastLRUCache"
size="${solr.authorityCache.size:512}"
@@ -406,14 +401,6 @@
regenerator="org.alfresco.solr.FilterCacheRegenerator"
/>
<!-- No regnerator or warming is required - this will be populated by the authority cache regenration -->
<cache name="alfrescoReaderToAclIdsCache"
class="solr.FastLRUCache"
size="${solr.readerToAclIdsCache.size:512}"
initialSize="${solr.readerToAclIdsCache.initialSize:512}"
autowarmCount="0"
/>
<listener event="newSearcher" class="org.alfresco.solr.AlfrescoSolrEventListener">
</listener>

View File

@@ -58,25 +58,21 @@ alfresco.workQueueSize=-1
alfresco.maxTotalConnections=40
alfresco.maxHostConnections=40
alfresco.socketTimeout=60000
# SOLR caching
solr.filterCache.size=64
solr.filterCache.initialSize=64
solr.filterCache.size=512
solr.filterCache.initialSize=512
solr.queryResultCache.size=1024
solr.queryResultCache.initialSize=1024
solr.documentCache.size=64
solr.documentCache.initialSize=64
solr.documentCache.size=512
solr.documentCache.initialSize=512
solr.queryResultMaxDocsCached=2000
solr.authorityCache.size=64
solr.authorityCache.initialSize=64
solr.pathCache.size=64
solr.pathCache.initialSize=64
solr.readerToAclIdsCache.size=64
solr.readerToAclIdsCache.initialSize=64
solr.authorityCache.size=512
solr.authorityCache.initialSize=512
solr.pathCache.size=512
solr.pathCache.initialSize=512
# SOLR
@@ -105,6 +101,3 @@ solr.queryResultWindowSize=200
# logging check report ....
#
#
alfresco.doPermissionChecks=true

View File

@@ -0,0 +1,175 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<!--
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.
-->
<web-app>
<!-- Uncomment if you are trying to use a Resin version before 3.0.19.
Their XML implementation isn't entirely compatible with Xerces.
Below are the implementations to use with Sun's JVM.
<system-property javax.xml.xpath.XPathFactory=
"com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl"/>
<system-property javax.xml.parsers.DocumentBuilderFactory=
"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"/>
<system-property javax.xml.parsers.SAXParserFactory=
"com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl"/>
-->
<!-- People who want to hardcode their "Solr Home" directly into the
WAR File can set the JNDI property here...
-->
<!--
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/put/your/solr/home/here</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
-->
<!-- Any path (name) registered in solrconfig.xml will be sent to that filter -->
<filter>
<filter-name>SolrRequestFilter</filter-name>
<filter-class>org.apache.solr.servlet.SolrDispatchFilter</filter-class>
<!-- If you are wiring Solr into a larger web application which controls
the web context root, you will probably want to mount Solr under
a path prefix (app.war with /app/solr mounted into it, for example).
You will need to put this prefix in front of the SolrDispatchFilter
url-pattern mapping too (/solr/*), and also on any paths for
legacy Solr servlet mappings you may be using.
For the admin JSP's to work properly in a path-prefixed configuration,
the admin folder containing the JSPs needs to be under the app context root
named to match the path-prefix. For example:
.war
xxx
admin
stats.jsp
-->
<!--
<init-param>
<param-name>path-prefix</param-name>
<param-value>/xxx</param-value>
</init-param>
-->
</filter>
<filter-mapping>
<!--
NOTE: When using multicore, /admin JSP URLs with a core specified
such as /solr/coreName/admin/stats.jsp get forwarded by a
RequestDispatcher to /solr/admin/stats.jsp with the specified core
put into request scope keyed as "org.apache.solr.SolrCore".
It is unnecessary, and potentially problematic, to have the SolrDispatchFilter
configured to also filter on forwards. Do not configure
this dispatcher as <dispatcher>FORWARD</dispatcher>.
-->
<filter-name>SolrRequestFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Otherwise it will continue to the old servlets -->
<servlet>
<servlet-name>SolrServer</servlet-name>
<display-name>Solr</display-name>
<description>Solr Server</description>
<servlet-class>org.apache.solr.servlet.SolrServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>SolrUpdate</servlet-name>
<display-name>SolrUpdate</display-name>
<description>Solr Update Handler</description>
<servlet-class>org.apache.solr.servlet.SolrUpdateServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>Logging</servlet-name>
<servlet-class>org.apache.solr.servlet.LogLevelSelection</servlet-class>
</servlet>
<!-- @Deprecated -->
<servlet>
<servlet-name>ping</servlet-name>
<jsp-file>/admin/ping.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>SolrServer</servlet-name>
<url-pattern>/select/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SolrUpdate</servlet-name>
<url-pattern>/update/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Logging</servlet-name>
<url-pattern>/admin/logging</url-pattern>
</servlet-mapping>
<!-- @Deprecated -->
<servlet-mapping>
<servlet-name>ping</servlet-name>
<url-pattern>/admin/ping</url-pattern>
</servlet-mapping>
<!-- @Deprecated -->
<servlet-mapping>
<servlet-name>Logging</servlet-name>
<url-pattern>/admin/logging.jsp</url-pattern>
</servlet-mapping>
<mime-mapping>
<extension>.xsl</extension>
<!-- per http://www.w3.org/TR/2006/PR-xslt20-20061121/ -->
<mime-type>application/xslt+xml</mime-type>
</mime-mapping>
<!--
| Needs to be commented out to use HTTP
| Uncomment to re-renable https alongside changing alfresco.secureComms=https
| in the solrcore.properties
|
-->
<!--
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>repository</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Solr</realm-name>
</login-config>
<security-role>
<role-name>repository</role-name>
</security-role>
-->
</web-app>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}</artifactId>
<version>${version}</version>
</parent>
<artifactId>wcmqs</artifactId>
<packaging>war</packaging>
<name>Alfresco Web Quick Start customization</name>
<description>This project allows you to customize and overlay Alfresco Web Quick Start</description>
<dependencies>
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-wcm-quickstart</artifactId>
<version>${alfresco.version}</version>
<type>war</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<overlays>
<!-- The current project customizations -->
<overlay />
<!-- The Alfresco WCMQS War -->
<overlay>
<artifactId>alfresco-wcm-quickstart</artifactId>
<groupId>${alfresco.groupId}</groupId>
</overlay>
</overlays>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "../dtd/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] %m%n" />
</layout>
</appender>
<appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${app.log.dir}webquickstart.log" />
<param name="Append" value="true" />
<param name="Encoding" value="UTF-8" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] %m%n" />
</layout>
</appender>
<!-- Application Loggers -->
<logger name="org.alfresco.samples.quickstart">
<level value="warn" />
</logger>
<!-- 3rdparty Loggers -->
<logger name="org.springframework.core">
<level value="warn" />
</logger>
<logger name="org.springframework.beans">
<level value="warn" />
</logger>
<logger name="org.springframework.context">
<level value="warn" />
</logger>
<logger name="org.springframework.web">
<level value="warn" />
</logger>
<logger name="org.alfresco.wcm">
<level value="warn" />
</logger>
<!-- Root Logger -->
<root>
<priority value="${app.log.root.level}" />
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
</log4j:configuration>

View File

@@ -1,6 +0,0 @@
package=it.pkg
version=0.1-SNAPSHOT
groupId=archetype.it
artifactId=allInOneTest
alfresco_target_groupId=org.alfresco
alfresco_target_version=4.2.e

View File

@@ -1,6 +0,0 @@
package=it.pkg
version=0.1-SNAPSHOT
groupId=archetype.it
artifactId=allInOneTest
alfresco_target_groupId=org.alfresco
alfresco_target_version=4.2.e

View File

@@ -1 +0,0 @@
verify -Prun -Dmaven.tomcat.fork=true

View File

@@ -4,47 +4,16 @@
<groupId>org.alfresco.maven.archetype</groupId>
<artifactId>alfresco-amp-archetype</artifactId>
<packaging>maven-archetype</packaging>
<name>AMP Archetype from Maven Alfresco SDK</name>
<description>Sample project with full support for lifecycle and rapid development of AMPs (Alfresco Module Packages)</description>
<parent>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-lifecycle-aggregator</artifactId>
<version>1.1.1</version>
<version>1.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>archetype-resources/pom.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>archetype-resources/pom.xml</exclude>
</excludes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<configuration>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>@@</delimiter>
</delimiters>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -10,16 +10,7 @@
<defaultValue>org.alfresco</defaultValue>
</requiredProperty>
<requiredProperty key="alfresco_target_version">
<defaultValue>4.2.e</defaultValue>
</requiredProperty>
<requiredProperty key="alfresco_target_amp_client_war">
<defaultValue>alfresco</defaultValue>
</requiredProperty>
<requiredProperty key="alfresco_target_amp_client_war_groupId">
<defaultValue>org.alfresco</defaultValue>
</requiredProperty>
<requiredProperty key="alfresco_target_amp_client_war_version">
<defaultValue>4.2.e</defaultValue>
<defaultValue>4.2.c</defaultValue>
</requiredProperty>
<requiredProperty key="package">
<defaultValue>(not used)</defaultValue>
@@ -63,11 +54,11 @@
<fileSet filtered="false" encoding="UTF-8">
<directory>src/test/properties</directory>
<includes>
<include>**/*</include>
<include>**/*.properties</include>
</includes>
</fileSet>
<fileSet filtered="false" encoding="UTF-8">
<directory>tomcat</directory>
<directory>jetty</directory>
<includes>
<include>**/*.xml</include>
</includes>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure id="Server" class="org.mortbay.jetty.Server">
<New id="myDataSource"
class="org.mortbay.jetty.plus.naming.Resource">
<Arg>jdbc/dataSource</Arg>
<Arg>
<New class="${alfresco.db.datasource.class}">
<Set name="URL">${alfresco.db.url}</Set>
<Set name="User">${alfresco.db.username}</Set>
<Set name="Password">${alfresco.db.password}</Set>
</New>
</Arg>
</New>
</Configure>

View File

@@ -12,7 +12,7 @@
<parent>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-sdk-parent</artifactId>
<version>@@alfresco.sdk.parent.version@@</version>
<version>1.0</version>
</parent>
<!--
@@ -21,20 +21,13 @@
| For more available properties see the alfresco-sdk-parent POM.
-->
<properties>
<!-- Defines the alfresco edition to compile against. Allowed values are [org.alfresco|org.alfresco.enterprise]-->
<alfresco.groupId>${alfresco_target_groupId}</alfresco.groupId>
<!-- Defines the alfresco version to compile against -->
<alfresco.version>${alfresco_target_version}</alfresco.version>
<app.log.root.level>WARN</app.log.root.level>
<alfresco.data.location>alf_data_dev</alfresco.data.location>
<!-- Defines the target WAR artifactId to run this amp, only used with the -Pamp-to-war switch
. | Allowed values: alfresco | share. Defaults to a repository AMP, but could point to your foundation WAR -->
<alfresco.client.war>${alfresco_target_amp_client_war}</alfresco.client.war>
<!-- Defines the target WAR groupId to run this amp, only used with the -Pamp-to-war switch
. | Could be org.alfresco | org.alfresco.enterprise or your corporate groupId -->
<alfresco.client.war.groupId>${alfresco_target_amp_client_war_groupId}</alfresco.client.war.groupId>
<!-- Defines the target WAR version to run this amp, only used with the -Pamp-to-war switch -->
<alfresco.client.war.version>${alfresco_target_amp_client_war_version}</alfresco.client.war.version>
<!-- Defines the target WAR for this AMP. Allowed values: alfresco | share -->
<!-- Defaults to a repository AMP -->
<alfresco.client.war>alfresco</alfresco.client.war>
<!-- This controls which properties will be picked in src/test/properties for embedded run -->
<env>local</env>
</properties>
@@ -74,13 +67,7 @@
</dependencies>
<!-- This repository is only needed to retrieve Alfresco parent POM.
NOTE: This can be removed when/if Alfresco will be on Maven Central
NOTE: The repository to be used for Alfresco Enterprise artifacts is
https://artifacts.alfresco.com/nexus/content/groups/private/. Please check
with Alfresco Support to get credentials to add to your ~/.m2/settings.xml
if you are a Enterprise customer or Partner
-->
NOTE: This can be removed when/if Alfresco will be on Maven Central -->
<repositories>
<repository>
<id>alfresco-public</id>

View File

@@ -1,7 +1,7 @@
package org.alfresco.demoamp.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.alfresco.demoamp.DemoComponent;
@@ -9,56 +9,48 @@ import org.alfresco.model.ContentModel;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.util.ApplicationContextHelper;
import org.apache.log4j.Logger;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.ApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.tradeshift.test.remote.Remote;
import com.tradeshift.test.remote.RemoteTestRunner;
/**
* A simple class demonstrating how to run out-of-container tests
* loading Alfresco application context.
* loading Alfresco application context.
*
* This class uses the RemoteTestRunner to try and connect to
* localhost:4578 and send the test name and method to be executed on
* a running Alfresco. One or more hostnames can be configured in the @Remote
* annotation.
*
* If there is no available remote server to run the test, it falls
* back on local running of JUnits.
*
* For proper functioning the test class file must match exactly
* the one deployed in the webapp (either via JRebel or static deployment)
* otherwise "incompatible magic value XXXXX" class error loading issues will arise.
*
* @author Gabriele Columbro
* @author Maurizio Pillitu
* @author columbro
*
*/
@RunWith(RemoteTestRunner.class)
@Remote(runnerClass=SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:alfresco/application-context.xml")
public class DemoComponentTest {
private static final String ADMIN_USER_NAME = "admin";
static Logger log = Logger.getLogger(DemoComponentTest.class);
@Autowired
protected DemoComponent demoComponent;
protected static ApplicationContext applicationContext;
@Autowired
@Qualifier("NodeService")
protected NodeService nodeService;
protected static DemoComponent demoComponent;
protected static NodeService nodeService;
@BeforeClass
public static void initAppContext()
{
// TODO: Make testing properly working without need for helpers
// TODO: Provide this in an SDK base class
ApplicationContextHelper.setUseLazyLoading(false);
ApplicationContextHelper.setNoAutoStart(true);
applicationContext = ApplicationContextHelper.getApplicationContext(new String[] { "classpath:alfresco/application-context.xml" });
demoComponent = (DemoComponent) applicationContext.getBean("changeme.exampleComponent");
nodeService = (NodeService) applicationContext.getBean("NodeService");
AuthenticationUtil.setFullyAuthenticatedUser(ADMIN_USER_NAME);
log.debug("Sample test logging: If you see this message, means your unit test logging is properly configured. Change it in test-log4j.properties");
log.debug("Sample test logging: Application Context properly loaded");
}
@Test
public void testWiring() {
assertNotNull(demoComponent);
@@ -66,7 +58,6 @@ public class DemoComponentTest {
@Test
public void testGetCompanyHome() {
AuthenticationUtil.setFullyAuthenticatedUser(ADMIN_USER_NAME);
NodeRef companyHome = demoComponent.getCompanyHome();
assertNotNull(companyHome);
String companyHomeName = (String) nodeService.getProperty(companyHome, ContentModel.PROP_NAME);
@@ -76,12 +67,11 @@ public class DemoComponentTest {
@Test
public void testChildNodesCount() {
AuthenticationUtil.setFullyAuthenticatedUser(ADMIN_USER_NAME);
NodeRef companyHome = demoComponent.getCompanyHome();
int childNodeCount = demoComponent.childNodesCount(companyHome);
assertNotNull(childNodeCount);
// There are 7 folders by default under Company Home
assertEquals(7, childNodeCount);
// There are 5 folders by default under Company Home
assertEquals(5, childNodeCount);
}
}

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="${alfresco.client.war.folder}" path="${alfresco.client.contextPath}">
<!--
<Environment override="false" type="java.lang.Boolean" name="properties/startup.enable" description="A flag that globally enables or disables startup of the major Alfresco subsystems." value="true"/>
<Environment override="false" type="java.lang.String" name="properties/dir.root" description="The filesystem directory below which content and index data is stored. Should be on a shared disk if this is a clustered installation."/>
<Environment override="false" type="java.lang.String" name="properties/hibernate.dialect" description="The fully qualified name of a org.hibernate.dialect.Dialect subclass that allows Hibernate to generate SQL optimized for a particular relational database. Choose from org.hibernate.dialect.DerbyDialect, org.hibernate.dialect.MySQLInnoDBDialect, org.alfresco.repo.domain.hibernate.dialect.AlfrescoOracle9Dialect, org.alfresco.repo.domain.hibernate.dialect.AlfrescoSybaseAnywhereDialect, org.alfresco.repo.domain.hibernate.dialect.AlfrescoSQLServerDialect, org.hibernate.dialect.PostgreSQLDialect"/>
<Environment override="false" type="java.lang.String" name="properties/hibernate.query.substitutions" description="Mapping from tokens in Hibernate queries to SQL tokens. For PostgreSQL, set this to &quot;true TRUE, false FALSE&quot;."/>
<Environment override="false" type="java.lang.Boolean" name="properties/hibernate.jdbc.use_get_generated_keys" description="Enable use of JDBC3 PreparedStatement.getGeneratedKeys() to retrieve natively generated keys after insert. Requires JDBC3+ driver. Set to false if your driver has problems with the Hibernate identifier generators. By default, tries to determine the driver capabilities using connection metadata."/>
<Environment override="false" type="java.lang.String" name="properties/hibernate.default_schema" description="Qualify unqualified table names with the given schema/tablespace in generated SQL. It may be necessary to set this when the target database has more than one schema."/>
-->
</Context>

View File

@@ -41,12 +41,10 @@ AMP Archetype properties
...
<properties>
<!--
Determines the coordinates of target WAR for this AMP
Determines the target WAR for this AMP
Allowed values: alfresco (default) | share
-->
<alfresco.client.war>alfresco</alfresco.client.war>
<alfresco.client.war.groupId>${alfresco.groupId}</alfresco.client.war.groupId>
<alfresco.client.war.version>${alfresco.version}</alfresco.client.war.version>
</properties>
...
</project>

View File

@@ -61,12 +61,12 @@ Commands
* <<<mvn install -Dmaven.test.skip=true>>>: Like <<<mvn install>>> but skips unit tests
* <<<mvn install -Pamp-to-war>>> Like <<<mvn package -Pamp-to-war>>>
but also installs and runs the resulting WAR+AMP in Tomcat + H2 embedded for integration testing.
When you run this command then you can access in your browser <<< {{{http://localhost:8080/alfresco}}} >>> or <<< {{{http://localhost:8080/share}}} >>>
depending on the value of the property <<<alfresco.client.war>>>
* <<<mvn package -Pamp-to-war>>>: Like <<<mvn package>>> but also installs the AMP onto an Alfresco WAR.
* <<<mvn install -Pamp-to-war -Dalfresco.client.war=share>>>: Like <<<mvn install -Pamp-to-war>>> but installs the AMP and runs on the Share WAR in Tomcat embedded.
* <<<mvn integration-test -Pamp-to-war>>> Like <<<mvn package -Pamp-to-war>>>
but also runs the resulting WAR+AMP in Jetty + H2 embedded for integration testing
* <<<mvn integration-test -Pamp-to-war -Dalfresco.client.war=share>>>: Like <<<mvn integration-test -Pamp-to-war>>> but installs the AMP and runs on the Share WAR in Jetty embedded.
* <<<mvn clean -Ppurge>>>: Removes DB, alf_data, indexes and log files. Useful to purge the development repo (by default self contained in <<<$\{project.basedir\}/alf_data_dev>>>

View File

@@ -2,10 +2,7 @@
package=it.pkg
version=0.1-SNAPSHOT
groupId=archetype.it
alfresco_target_version=4.2.e
alfresco_target_version=4.2.b
$=cat archetype.properties
alfresco_target_groupId=org.alfresco
alfresco_target_amp_client_war=alfresco
alfresco_target_amp_client_war_groupId=org.alfresco
alfresco_target_amp_client_war_version=4.2.e
artifactId=basic

View File

@@ -1,11 +0,0 @@
#Tue Oct 30 14:23:01 CET 2012
package=it.pkg
version=0.1-SNAPSHOT
groupId=archetype.it
alfresco_target_version=4.2.e
$=cat archetype.properties
alfresco_target_groupId=org.alfresco
alfresco_target_amp_client_war=alfresco
alfresco_target_amp_client_war_groupId=org.alfresco
alfresco_target_amp_client_war_version=4.2.e
artifactId=basic

View File

@@ -1 +0,0 @@
verify -Pamp-to-war -Dmaven.tomcat.fork=true

View File

@@ -1,39 +0,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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>alfresco-rad</artifactId>
<packaging>jar</packaging>
<name>alfresco-rad</name>
<description>SDK module for Rapid Deveopment support</description>
<parent>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-lifecycle-aggregator</artifactId>
<version>1.1.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
<!-- Enables JUnit remote testing (using JRebel) -->
<dependency>
<groupId>com.tradeshift</groupId>
<artifactId>junit-remote</artifactId>
<version>3</version>
<type>jar</type>
<exclusions>
<exclusion>
<artifactId>servlet-api</artifactId>
<groupId>javax.servlet</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- Required to have annotation based remote testing working -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.0.6.RELEASE</version>
<type>jar</type>
</dependency>
</dependencies>
</project>

View File

@@ -1,16 +0,0 @@
package org.alfresco.maven.rad;
import com.tradeshift.test.remote.RemoteServer;
public class RemoteRunnerWrapper implements Runnable {
public void run() {
try {
RemoteServer.main(new String []{});
} catch (Exception e) {
System.out.println("Could not start JUnit remoteServer");
}
}
}

View File

@@ -1,29 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.
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.
-->
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<bean id="remoteRunnnerWrapper" class="org.alfresco.maven.rad.RemoteRunnerWrapper"/>
<bean id="remoteRunnnerWrapperThread" class="java.lang.Thread" init-method="start" destroy-method="interrupt">
<constructor-arg ref="remoteRunnnerWrapper"/>
</bean>
</beans>

View File

@@ -8,7 +8,7 @@
<parent>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-lifecycle-aggregator</artifactId>
<version>1.1.1</version>
<version>1.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -17,7 +17,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<version>3.0</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
@@ -26,7 +26,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.2</version>
<version>3.0</version>
<executions>
<execution>
<id>generated-helpmojo</id>
@@ -56,11 +56,6 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-archiver</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
@@ -79,7 +74,7 @@
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-mmt</artifactId>
<version>4.2.e</version>
<version>4.2.b</version>
</dependency>
</dependencies>
@@ -88,7 +83,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.2</version>
<version>3.0</version>
</plugin>
</plugins>
</reporting>

View File

@@ -1,7 +1,12 @@
package org.alfresco.maven.plugin;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Set;
import org.alfresco.maven.plugin.archiver.AmpArchiver;
@@ -72,28 +77,15 @@ public class AmpMojo extends AbstractMojo {
* @required
*/
protected boolean includeDependencies;
/**
* Whether the JAR produced should be attached as a separate 'classes' artifact.
*
* @parameter property="maven.alfresco.attachClasses" default-value="false"
*/
protected boolean attachClasses;
/**
* Whether a config artifact should be produced should be attached as a separate 'config' artifact.
*
* @parameter property="maven.alfresco.attachConfig" default-value="false"
*/
protected boolean attachConfig;
/**
* Directory of the final generated AMP
* Directory the build produces the AMP file in
*
* @parameter property="maven.alfresco.ampFinalDir" default-value="${project.build.directory}"
* @parameter default-value="${project.build.directory}"
* @required
* @readonly
*/
protected File ampFinalDir;
protected File outputDirectory;
/**
* (Read Only) Directory containing the classes and resource files that should be packaged into the JAR.
@@ -141,11 +133,6 @@ public class AmpMojo extends AbstractMojo {
if(includeDependencies) {
gatherDependencies();
}
File jarFile = createJarArchive();
if (this.attachClasses) {
this.projectHelper.attachArtifact(this.project, "jar", "classes", jarFile);
}
File ampFile = createArchive();
if (this.classifier != null) {
@@ -153,41 +140,8 @@ public class AmpMojo extends AbstractMojo {
} else {
this.project.getArtifact().setFile(ampFile);
}
if (attachConfig) {
File configFile = createConfigArchive();
this.projectHelper.attachArtifact(this.project, "jar", "config", configFile);
}
}
/**
* Creates and returns the JAR archive, invoking the MavenArchiver
*
* @return a File pointing to the JAR, contained
* in ${project.build.outputDirectory}
*/
protected File createJarArchive()
throws MojoExecutionException {
File jarFile = getFile(
new File(this.ampBuildDirectory, AmpModel.AMP_FOLDER_LIB),
this.ampFinalName,
this.classifier,
"jar");
MavenArchiver jarArchiver = new MavenArchiver();
jarArchiver.setArchiver(new JarArchiver());
jarArchiver.setOutputFile(jarFile);
try {
jarArchiver.getArchiver().addDirectory(this.classesDirectory, new String[] {}, new String[] {});
jarArchiver.createArchive(this.session, this.project, this.archive);
return jarFile;
}
catch (Exception e) {
throw new MojoExecutionException("Error creating JAR", e);
}
}
/**
* Creates and returns the AMP archive, invoking the AmpArchiver
*
@@ -196,25 +150,36 @@ public class AmpMojo extends AbstractMojo {
*/
protected File createArchive()
throws MojoExecutionException {
File jarFile = getFile(
new File(this.ampBuildDirectory, AmpModel.AMP_FOLDER_LIB),
this.ampFinalName,
this.classifier,
"jar");
File ampFile = getFile(
this.ampFinalDir,
this.outputDirectory,
this.ampFinalName,
this.classifier,
"amp"
);
MavenArchiver jarArchiver = new MavenArchiver();
jarArchiver.setArchiver(new JarArchiver());
jarArchiver.setOutputFile(jarFile);
MavenArchiver ampArchiver = new MavenArchiver();
ampArchiver.setArchiver(new AmpArchiver());
ampArchiver.setOutputFile(ampFile);
// JarArchiver.FilesetManifestConfig config = new JarArchiver.FilesetManifestConfig();
// config.setValue("skip");
// ampArchiver.getArchiver().setFilesetmanifest(config);
if (!this.ampBuildDirectory.exists()) {
getLog().warn("ampBuildDirectory does not exist - AMP will be empty");
} else {
try {
jarArchiver.getArchiver().addDirectory(this.classesDirectory, new String[]{}, new String[]{});
jarArchiver.createArchive(this.session, this.project, this.archive);
} catch (Exception e) {
throw new MojoExecutionException("Error creating JAR", e);
}
try {
ampArchiver.getArchiver().addDirectory(this.ampBuildDirectory, new String[]{"**"}, new String[]{});
ampArchiver.createArchive(this.session, this.project, this.archive);
@@ -225,37 +190,6 @@ public class AmpMojo extends AbstractMojo {
}
return ampFile;
}
/**
* Creates and returns the config archive, invoking the MavenArchiver
*
* @return a File pointing to the JAR, contained
* in ${project.build.outputDirectory}
*/
protected File createConfigArchive()
throws MojoExecutionException {
File configFile = getFile(
new File(this.project.getBuild().getDirectory()),
this.ampFinalName,
this.classifier,
"jar");
MavenArchiver configArchiver = new MavenArchiver();
configArchiver.setArchiver(new JarArchiver());
configArchiver.setOutputFile(configFile);
try {
configArchiver.getArchiver().addDirectory(
new File(this.ampBuildDirectory, "config"),
new String[] { },
new String[] { "**/*.class" });
configArchiver.createArchive(this.session, this.project, this.archive);
return configFile;
}
catch (Exception e) {
throw new MojoExecutionException("Error creating config artifact", e);
}
}
/**
* Builds a File object pointing to the target AMP package; the pointer to the File is created taking into

View File

@@ -70,22 +70,12 @@ public class InstallMojo extends AbstractMojo {
* @parameter property="maven.alfresco.skipWarManifestCheck" default-value="false"
*/
private boolean skipWarManifestCheck;
/**
* Whether or not to skip the attempt to install the AMP in the warLocation altogether
*
* @parameter property="maven.alfresco.skipAmpInstallation" default-value="false"
*/
private boolean skipAmpInstallation;
public InstallMojo() {
}
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
if (skipAmpInstallation) {
return;
}
// Checks appropriate input params are in place
checkParams();
ModuleManagementTool mmt = new ModuleManagementTool();

158
pom.xml
View File

@@ -3,34 +3,33 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-lifecycle-aggregator</artifactId>
<version>1.1.1</version>
<version>1.0.1</version>
<name>Maven Alfresco SDK</name>
<description>This aggregator Project builds all modules required for
the Maven Alfresco SDK</description>
<description>This aggregator Project builds all modules required for the Maven Alfresco SDK</description>
<packaging>pom</packaging>
<url>${maven.site.url}</url>
<prerequisites>
<maven>3.0.3</maven>
</prerequisites>
<licenses>
<license>
<name>GNU Lesser General Public License v3.0 or later</name>
<url>http://www.gnu.org/licenses/lgpl-3.0-standalone.html</url>
</license>
</licenses>
<issueManagement>
<system>GoogleCode</system>
<url>http://code.google.com/p/maven-alfresco-archetypes/issues</url>
<url>http://code.google.com/p/maven-alfresco-archetypes/issues/detail</url>
</issueManagement>
<scm>
<connection>scm:svn:${scm.url.base}/tags/alfresco-lifecycle-aggregator-1.1.1</connection>
<developerConnection>scm:svn:${scm.url.base}/tags/alfresco-lifecycle-aggregator-1.1.1</developerConnection>
<url>${scm.url.base}/tags/alfresco-lifecycle-aggregator-1.1.1</url>
<connection>scm:svn:https://maven-alfresco-archetypes.googlecode.com/svn/tags/alfresco-lifecycle-aggregator-1.0.1</connection>
<developerConnection>scm:svn:https://maven-alfresco-archetypes.googlecode.com/svn/tags/alfresco-lifecycle-aggregator-1.0.1</developerConnection>
<url>https://maven-alfresco-archetypes.googlecode.com/svn/tags/alfresco-lifecycle-aggregator-1.0.1</url>
</scm>
<developers>
@@ -62,7 +61,7 @@
</roles>
</developer>
</developers>
<contributors>
<contributor>
<name>Carlo Sciolla</name>
@@ -76,8 +75,6 @@
<!-- All the modules of the Maven Alfresco SDK -->
<modules>
<!-- Modules -->
<module>modules/alfresco-rad</module>
<!-- Plugins -->
<module>plugins/alfresco-maven-plugin</module>
<!-- POM files -->
@@ -85,14 +82,37 @@
<!-- Archetypes -->
<module>archetypes/alfresco-amp-archetype</module>
<module>archetypes/alfresco-allinone-archetype</module>
</modules>
</modules>
<distributionManagement>
<repository>
<id>alfresco-internal</id>
<url>https://artifacts.alfresco.com/nexus/content/repositories/releases
</url>
</repository>
<snapshotRepository>
<name>alfresco snapshots repository</name>
<id>alfresco-internal-snapshots</id>
<url>https://artifacts.alfresco.com/nexus/content/repositories/snapshots
</url>
</snapshotRepository>
<site>
<id>alfresco-docs</id>
<url>dav:${maven.site.url}</url>
</site>
</distributionManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.archetype.version>2.2</maven.archetype.version>
<alfresco.sdk.parent.version>${project.version}</alfresco.sdk.parent.version>
<maven.release.version>2.4</maven.release.version>
<maven.release.goals>deploy site-deploy</maven.release.goals>
<maven.site.version>3.2</maven.site.version>
<maven.changes.version>2.8</maven.changes.version>
<maven.site.url>https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-lifecycle-aggregator/latest</maven.site.url>
<scm.url.base>https://maven-alfresco-archetypes.googlecode.com/svn</scm.url.base>
</properties>
<scm.tag.base>${scm.url.base}/tags</scm.tag.base>
</properties>
<build>
<pluginManagement>
@@ -102,6 +122,11 @@
<artifactId>maven-archetype-plugin</artifactId>
<version>${maven.archetype.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven.site.version}</version>
</plugin>
</plugins>
</pluginManagement>
<extensions>
@@ -116,8 +141,38 @@
<version>2.2</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${maven.release.version}</version>
<configuration>
<tagBase>${scm.tag.base}</tagBase>
<preparationGoals>clean install</preparationGoals>
<goals>${maven.release.goals}</goals>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>${maven.changes.version}</version>
<reportSets>
<reportSet>
<reports>
<report>changes-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<repositories>
<repository>
@@ -135,71 +190,4 @@
</repository>
</repositories>
<profiles>
<profile>
<id>release</id>
<properties>
<maven.site.url>https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-lifecycle-aggregator/latest</maven.site.url>
<maven.release.version>2.4.2</maven.release.version>
<maven.release.goals>deploy site-deploy</maven.release.goals>
<maven.site.version>3.3</maven.site.version>
<maven.changes.version>2.9</maven.changes.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${maven.release.version}</version>
<configuration>
<preparationGoals>clean install</preparationGoals>
<goals>${maven.release.goals}</goals>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven.site.version}</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>${maven.changes.version}</version>
<reportSets>
<reportSet>
<reports>
<report>changes-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<distributionManagement>
<repository>
<id>alfresco-internal</id>
<url>https://artifacts.alfresco.com/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<name>alfresco snapshots repository</name>
<id>alfresco-internal-snapshots</id>
<url>https://artifacts.alfresco.com/nexus/content/repositories/snapshots</url>
</snapshotRepository>
<site>
<id>alfresco-docs</id>
<url>dav:${maven.site.url}</url>
</site>
</distributionManagement>
</profile>
</profiles>
</project>

View File

@@ -14,16 +14,12 @@
<parent>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-lifecycle-aggregator</artifactId>
<version>1.1.1</version>
<version>1.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<!-- This defines the version of the SDK in terms of features -->
<version>1.1.1</version>
<prerequisites>
<maven>3.0.3</maven>
</prerequisites>
<version>1.0.1</version>
<properties>
<!-- Default Alfresco version this SDK version has been tested with:
@@ -37,15 +33,12 @@
| For available versions please search on https://artifacts.alfresco.com/nexus/index.html
-->
<alfresco.groupId>org.alfresco</alfresco.groupId>
<alfresco.version>4.2.e</alfresco.version>
<alfresco.version>4.2.c</alfresco.version>
<!-- Values can be "alfresco" or "share". Default value is 'alfresco' assuming you are developing a repository AMP, change to share for share AMPs
| This impact (in AMP projects) the choice of the WAR project for embedded run
-->
<alfresco.client.war>alfresco</alfresco.client.war>
<alfresco.client.war.groupId>${alfresco.groupId}</alfresco.client.war.groupId>
<alfresco.client.war.version>${alfresco.version}</alfresco.client.war.version>
<alfresco.client.contextPath>/${alfresco.client.war}</alfresco.client.contextPath>
<!-- IMPORTANT! Override this only if you know what you're doing; it could break amp-to-war overlay -->
<alfresco.client.war.folder>${project.build.directory}/${project.build.finalName}-war</alfresco.client.war.folder>
@@ -97,26 +90,27 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Maven Plugins Versions used by the SDK -->
<maven.compiler.version>3.1</maven.compiler.version>
<maven.compiler.version>3.0</maven.compiler.version>
<maven.clean.version>2.5</maven.clean.version>
<maven.dependency.version>2.8</maven.dependency.version>
<maven.enforcer.plugin>1.3.1</maven.enforcer.plugin>
<maven.dependency.version>2.6</maven.dependency.version>
<maven.enforcer.plugin>1.2</maven.enforcer.plugin>
<maven.resources.version>2.6</maven.resources.version>
<maven.surefire.version>2.16</maven.surefire.version>
<maven.install.version>2.5.1</maven.install.version>
<maven.surefire.version>2.13</maven.surefire.version>
<maven.install.version>2.4</maven.install.version>
<maven.jar.version>2.4</maven.jar.version>
<maven.war.version>2.4</maven.war.version>
<maven.release.version>2.4.2</maven.release.version>
<maven.buildhelper.version>1.8</maven.buildhelper.version>
<maven.tomcat.version>2.1</maven.tomcat.version>
<maven.war.version>2.3</maven.war.version>
<maven.release.version>2.4</maven.release.version>
<maven.buildhelper.version>1.7</maven.buildhelper.version>
<maven.jetty.version>6.1.26</maven.jetty.version>
<!-- This is used for the site deployment procedure (override in your POM as needed) -->
<stagingDirectory>../../target/staging/poms/alfresco-sdk-parent</stagingDirectory>
<!-- Alfresco Maven plugin in use throughout the SDK -->
<maven.alfresco.version>1.1.1</maven.alfresco.version>
<h2.version>1.3.174</h2.version>
<maven.alfresco.version>1.0.1</maven.alfresco.version>
<h2.version>1.3.170</h2.version>
<h2-support.version>1.5</h2-support.version>
</properties>
<repositories>
<repository>
<id>alfresco-public</id>
@@ -165,8 +159,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.version}</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
@@ -186,8 +180,6 @@
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
<nonFilteredFileExtension>ppt</nonFilteredFileExtension>
<nonFilteredFileExtension>bin</nonFilteredFileExtension>
<nonFilteredFileExtension>lic</nonFilteredFileExtension>
<nonFilteredFileExtension>swf</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
@@ -210,11 +202,6 @@
<artifactId>alfresco-maven-plugin</artifactId>
<version>${maven.alfresco.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-archiver</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
</plugin>
<plugin>
@@ -242,33 +229,10 @@
<artifactId>maven-jar-plugin</artifactId>
<version>${maven.jar.version}</version>
</plugin>
<!-- Configures tomcat with proper deps and performance fixes -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>${maven.tomcat.version}</version>
<configuration>
<useSeparateTomcatClassLoader>true</useSeparateTomcatClassLoader>
</configuration>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2.version}</version>
</dependency>
<dependency>
<groupId>tk.skuro.alfresco</groupId>
<artifactId>h2-support</artifactId>
<version>${h2-support.version}</version>
</dependency>
<!-- Major performance improvement,
see http://mindthegab.com/2013/06/20/maven-is-not-so-evil-plexus-archives-2-3-is-a-life-saver-for-the-speed-of-your-war-development-with-maven/ -->
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-archiver</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>${maven.jetty.version}</version>
</plugin>
</plugins>
</pluginManagement>
@@ -380,7 +344,60 @@
</plugins>
</build>
</profile>
<!-- Enable jetty running embedded if the jetty/jetty.xml file exists in the project -->
<profile>
<id>enable-jetty</id>
<activation>
<file>
<exists>jetty/jetty.xml</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>filter-jetty-conf</id>
<goals>
<goal>copy-resources</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>target</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/jetty</directory>
<filtering>${app.filtering.enabled}</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<configuration>
<jettyConfig>${project.build.directory}/jetty.xml</jettyConfig>
</configuration>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2.version}</version>
</dependency>
<dependency>
<groupId>tk.skuro.alfresco</groupId>
<artifactId>h2-support</artifactId>
<version>${h2-support.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
<!-- Enable AMP lifecycle if finds a module.properties, including unit testing support -->
<profile>
@@ -419,12 +436,18 @@
<phase>process-test-resources</phase>
<goals><goal>copy-resources</goal></goals>
<configuration>
<outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
<outputDirectory>${app.amp.test.output.folder}</outputDirectory>
<resources>
<resource>
<directory>${app.amp.folder}/config</directory>
<filtering>${app.filtering.enabled}</filtering>
</resource>
<resource>
<directory>${app.amp.folder}</directory>
<includes><include>module.properties</include></includes>
<targetPath>alfresco/module/${project.artifactId}</targetPath>
<filtering>${app.filtering.enabled}</filtering>
</resource>
</resources>
</configuration>
</execution>
@@ -438,7 +461,7 @@
<argLine>${app.testing.jvm.args}</argLine>
<additionalClasspathElements>
<!-- Adds the previously built ${app.amp.test.output.folder} to test classpath to enable module installation at test time -->
<!-- <additionalClasspathElement>${app.amp.test.output.folder}</additionalClasspathElement> -->
<additionalClasspathElement>${app.amp.test.output.folder}</additionalClasspathElement>
</additionalClasspathElements>
</configuration>
</plugin>
@@ -458,22 +481,20 @@
<version>${h2-support.version}</version>
<scope>test</scope>
</dependency>
<!-- Add RAD capabilities for remote JUnit test running (client) -->
<dependency>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-rad</artifactId>
<version>${maven.alfresco.version}</version>
<scope>test</scope>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.0.5.RELEASE</version>
<scope>test</scope>
</dependency>
<!--
| Requires this explicit test dependency, for a Spring 3.0.5 bug
<!-- Requires this explicit test dependency, for a Spring 3.0.5 bug
| See https://jira.springsource.org/browse/SPR-8527
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.0.6.RELEASE</version>
<scope>provided</scope>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${alfresco.groupId}</groupId>
@@ -492,72 +513,9 @@
</dependencies>
</profile>
<!-- Profile to enable rapid application development with JRebel
and remote JUnit running, needs to be called explicitly
with -Prad -->
<profile>
<id>rad</id>
<build>
<plugins>
<plugin>
<groupId>org.zeroturnaround</groupId>
<artifactId>jrebel-maven-plugin</artifactId>
<version>1.1.5</version>
<executions>
<execution>
<id>generate-rebel-xml</id>
<phase>prepare-package</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<packaging>war</packaging>
<generateDefaultElements>false</generateDefaultElements>
<classpath>
<resources>
<resource>
<directory>${project.build.outputDirectory}</directory>
</resource>
<resource>
<directory>${project.build.testOutputDirectory}</directory>
</resource>
</resources>
</classpath>
<web>
<resources>
<resource>
<target>/</target>
<directory>${project.build.directory}/${project.build.finalName}</directory>
</resource>
<resource>
<target>/</target>
<directory>${project.build.directory}/${project.build.finalName}-war</directory>
</resource>
</resources>
</web>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- Add RAD capabilities for remote JUnit test running (client) -->
<dependency>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-rad</artifactId>
<version>${maven.alfresco.version}</version>
</dependency>
</dependencies>
</profile>
<!-- Enable AMP project packing on a WAR and run embedded in Tomcat -->
<!-- Enable AMP project packing on a WAR and run embedded in Jetty -->
<profile>
<id>amp-to-war</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<!-- Fetch and unpack Alfresco Repository / Share in the target / folder -->
@@ -573,24 +531,23 @@
<outputDirectory>${alfresco.client.war.folder}</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>${alfresco.client.war.groupId}</groupId>
<groupId>${alfresco.groupId}</groupId>
<artifactId>${alfresco.client.war}</artifactId>
<type>war</type>
<version>${alfresco.client.war.version}</version>
<version>${alfresco.version}</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<!-- Configure tomcat context.xml included in the webapp with proper filtering -->
<!-- When the AMP runs locally, src/test/webapp and src/test/resources will contain -->
<!-- the location of the configuration files -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<!-- When the AMP runs locally, src/test/webapp and src/test/resources will contain -->
<!-- the location of the configuration files -->
<execution>
<execution>
<id>copy-alfresco-test-resources</id>
<phase>prepare-package</phase>
<goals><goal>copy-resources</goal></goals>
@@ -605,29 +562,6 @@
<targetPath>WEB-INF/classes</targetPath>
<filtering>${app.filtering.enabled}</filtering>
</resource>
<resource>
<directory>src/test/properties/${env}</directory>
<filtering>${app.filtering.enabled}</filtering>
<targetPath>WEB-INF/classes</targetPath>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-tomcat-resources</id>
<phase>prepare-package</phase>
<goals><goal>copy-resources</goal></goals>
<configuration>
<outputDirectory>${alfresco.client.war.folder}</outputDirectory>
<resources>
<resource>
<directory>tomcat</directory>
<filtering>${app.filtering.enabled}</filtering>
<targetPath>WEB-INF</targetPath>
<includes>
<include>context.xml</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
@@ -648,30 +582,27 @@
</execution>
</executions>
</plugin>
<!-- Configures tomcat to run against the overlaid WAR + AMP -->
<!-- If the integration-test phase is called, the integrated WAR + AMP is actually ran in Jetty -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<executions>
<execution>
<id>run-wars</id>
<id>run-amp-to-war</id>
<goals>
<goal>run-war-only</goal>
<goal>run-exploded</goal>
</goals>
<phase>integration-test</phase>
<configuration>
<contextFile>${alfresco.client.war.folder}/WEB-INF/context.xml</contextFile>
<!-- To run a non WAR project -->
<ignorePackaging>true</ignorePackaging>
</configuration>
<phase>pre-integration-test</phase>
</execution>
</executions>
<configuration>
<webApp>${alfresco.client.war.folder}</webApp>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Cleans Alfresco data folder, embedded DB and any log file found -->
</profile>
<!-- Cleans Alfresco data folder, embedded DB and logs -->
<profile>
<id>purge</id>
<build>
@@ -686,12 +617,9 @@
<directory>${project.basedir}/${alfresco.data.location}</directory>
</fileset>
<fileset>
<directory>${project.basedir}/solr_home</directory>
</fileset>
<fileset>
<directory>${project.basedir}</directory>
<directory>${app.log.dir}</directory>
<includes>
<include>**/*.log</include>
<include>*.log</include>
</includes>
</fileset>
</filesets>

View File

@@ -64,6 +64,6 @@ Project History
* The {{{https://groups.google.com/forum/?fromgroups#!forum/maven-alfresco}Maven Alfresco Lifecycle Discussion Group}} reaches 100 members in August 2012
* In October 2012 Alfresco finalises the {{{https://issues.alfresco.com/jira/browse/ALF-14353} Maven modularisation and dependency categorisation}}, delivering {{{https://artifacts.alfresco.com}artifacts and poms}}
* In October 2012 Alfresco finalises the {{{https://issues.alfresco.com/jira/browse/ALF-14353}aMaven modularisation and dependency categorisation}}, delivering {{{https://artifacts.alfresco.com}artifacts and poms}}
* The new Alfresco Maven SDK 1.0 is released and presented on Tuesday 7 November at {{{http://devcon.alfresco.com/}Alfresco DevCon}} in Berlin.