Upload
angel-borroy
View
162
Download
1
Embed Size (px)
Citation preview
From Venus to Mars
Developer land
Real world
Maven Alfresco SDK is fun! -Pamp-to-war
Alfresco AMP Archetype
Share AMP Archetype
What about deployments?
Real world has environments…!!!
… and integrated systems!
TEST PRE PRO
TEST PRE PRO
REPO SHARE!!!!!!
TEST + PRE + PRO!
Properties everywhere
INT
1 INT
2 INT
3 INT
1 INT
2 INT
3
Shared properties REPO SHARE!
Alfresco Repo properties
alfresco-global.properties!!• Packaging this file inside AMP module !• Or including new entries in Alfresco
shared folder original file!
No possibility to configure it by environment
Alfresco Share properties • No visibility for resources in shared
alfresco-global.properties !• Custom properties files or custom
messages files!
No possibility to configure it by environment No possibility to share props with repo
TEST
PRE
PRO
Our approach Maven Alfresco SDK to the rescue
profiles
properties-maven-plugin
maven-antrun-plugin
TEST
PRE
PRO
TEST
PRE
PRO
AMP!
TEST
PRE
PRO
Our approach Maven Alfresco SDK to the rescue
profiles
properties-maven-plugin
maven-antrun-plugin
TEST
PRE
PRO
TEST
PRE
PRO
AMP!
Properties files
external.system.url=test.external-system.com
conf/test.alfresco-amp.properties
external.system.url=pre.external-system.com
conf/pre.alfresco-amp.properties
external.system.url=external-system.com
conf/pro.alfresco-amp.properties
TEST
PRE
PRO
pom.xml - environments <profiles>
<profile>
<id>test</id>
<properties><env>test</env></properties>
</profile>
<profile>
<id>pre</id>
<properties><env>pre</env></properties>
</profile>
<profile>
<id>pro</id>
<properties><env>pro</env></properties>
</profile>
</profiles>
pom.xml – properties plugin <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<configuration>
<files>
<file>${user.dir}/conf/${env}.alfresco-amp.properties</file>
</files>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals><goal>read-project-properties</goal></goals>
</execution>
</executions>
</plugin>
pom.xml – AntRun plugin <plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals><goal>run</goal></goals>
<configuration>
<tasks>
<copy todir="${dist}/${env}/amps" failonerror="false">
<fileset dir="${basedir}/target”><include name="*.amp"/>
</fileset>
</copy>
</tasks>
</configuration>
</execution>
</executions>
</plugin> Repo + Share!
<bean id="externalConnection"
class="es.keensoft.alfresco.ExternalConnection”>
<property name="url" value="${external.system.url}" />
</bean>
Using values !!!!… or by message property injection!
amp/config/alfresco/module/service-context.xml
Packaging !!AMPs for TEST environment available at!• dist/test/amps!• dist/test/amps_share!
$ mvn clean package -Ptest
AMP!
Real life A sample on where it can be useful
eSignature service Server signature Client signature Verification
Real life A sample on where it can be useful
eSignature service Server signature Client signature Verification
# Server signature
url.SignatureServer=http://preservicios3.aragon.es/asf/services/
SignatureServer
# Verification
url.PolicyManager=http://preservicios3.aragon.es/asf/services/
PolicyManager
# Client signature
url.websigner=https://preservicios3.aragon.es/firma/js/WS.js
Properties
conf/pre.alfresco-ast.properties
Use case AMP Repo!<bean id="asfSignatureSystem” class="es.aragon.ast.alfresco.sign.impl.external.ASFSignatureSystem" > <property name="asfUrlSignatureServer" value="${asf.url.SignatureServer}" /> <property name="asfUrlPolicyManager" value="${asf.url.PolicyManager}" /></bean>
!AMP Share!<ast:getCAs policyManagerUrl="${asf.url.PolicyManager}" app="${asf.app}" />
!
Final marks • Using additional maven plugins to
extend Maven Alfresco SDK functionalities!
• Ready to deploy AMPs are produced by environment!
• Version organization can be added to store each distributed AMP!
Resources
GitHub"http://github.com/keensoft Twitter @AngelBorroy Blog http://www.keensoft.es/blog