SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
From Venus to Mars 
Developer land 
Real world
Maven Alfresco SDK is fun! 
-Pamp-to-war 
Share AMP Archetype 
Alfresco AMP Archetype
What about deployments? 
Real world has environments…! 
!! 
TEST PRE PRO 
… and integrated systems! 
TEST PRE PRO
Properties everywhere 
REPO SHARE! 
!!!!! 
INT 
1 
INT 
2 
TEST + PRE + PRO! 
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 
profiles 
properties-maven-plugin 
maven-antrun-plugin 
PRO 
Our approach 
Maven Alfresco SDK to the rescue 
TEST 
PRE 
PRO 
AMP! 
TEST 
PRE 
PRO
TEST 
PRE 
profiles 
properties-maven-plugin 
maven-antrun-plugin 
PRO 
Our approach 
Maven Alfresco SDK to the rescue 
TEST 
PRE 
PRO 
AMP! 
TEST 
PRE 
PRO
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!
Using values 
<bean id="externalConnection" 
class="es.keensoft.alfresco.ExternalConnection”> 
<property name="url" value="${external.system.url}" /> 
</bean> 
!!!! 
amp/config/alfresco/module/service-context.xml 
… or by message property injection!
Packaging 
!! 
$ mvn clean package -Ptest 
AMPs for TEST environment available at! 
• dist/test/amps! 
• dist/test/amps_share! 
AMP!
Server signature 
VerificationClient signature 
eSignature service 
Real life 
A sample on where it can be useful
Server signature 
VerificationClient signature 
eSignature service 
Real life 
A sample on where it can be useful
Properties 
# 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 
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

Weitere ähnliche Inhalte

Was ist angesagt?

Php psr standard 2014 01-22
Php psr standard 2014 01-22Php psr standard 2014 01-22
Php psr standard 2014 01-22
Võ Duy Tuấn
 
Денис Лебедев-Управление зависимостями с помощью CocoaPods
Денис Лебедев-Управление зависимостями с помощью CocoaPodsДенис Лебедев-Управление зависимостями с помощью CocoaPods
Денис Лебедев-Управление зависимостями с помощью CocoaPods
UA Mobile
 
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarksGradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Damian Mee
 

Was ist angesagt? (20)

Php psr standard 2014 01-22
Php psr standard 2014 01-22Php psr standard 2014 01-22
Php psr standard 2014 01-22
 
Httpd.conf
Httpd.confHttpd.conf
Httpd.conf
 
以 Laravel 經驗開發 Hyperf 應用
以 Laravel 經驗開發 Hyperf 應用以 Laravel 經驗開發 Hyperf 應用
以 Laravel 經驗開發 Hyperf 應用
 
Денис Лебедев-Управление зависимостями с помощью CocoaPods
Денис Лебедев-Управление зависимостями с помощью CocoaPodsДенис Лебедев-Управление зависимостями с помощью CocoaPods
Денис Лебедев-Управление зависимостями с помощью CocoaPods
 
Automated Java Deployments With Rpm
Automated Java Deployments With RpmAutomated Java Deployments With Rpm
Automated Java Deployments With Rpm
 
ZfDayIt 2014 - There is a module for everything
ZfDayIt 2014 - There is a module for everythingZfDayIt 2014 - There is a module for everything
ZfDayIt 2014 - There is a module for everything
 
Bosh Links Visualization
Bosh Links VisualizationBosh Links Visualization
Bosh Links Visualization
 
Automação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsAutomação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOps
 
Create your own composer package
Create your own composer packageCreate your own composer package
Create your own composer package
 
Generators
GeneratorsGenerators
Generators
 
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarksGradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
 
Composer 經典食譜
Composer 經典食譜Composer 經典食譜
Composer 經典食譜
 
AWS ElasticBeanstalk Advanced configuration
AWS ElasticBeanstalk Advanced configurationAWS ElasticBeanstalk Advanced configuration
AWS ElasticBeanstalk Advanced configuration
 
Amazon Ec2
Amazon Ec2Amazon Ec2
Amazon Ec2
 
Releasing Elixir/Phoenix Applications
Releasing Elixir/Phoenix ApplicationsReleasing Elixir/Phoenix Applications
Releasing Elixir/Phoenix Applications
 
Building aosp
Building aospBuilding aosp
Building aosp
 
Ansible windows cheat sheet by anil.k
Ansible windows cheat sheet by anil.kAnsible windows cheat sheet by anil.k
Ansible windows cheat sheet by anil.k
 
Managing windows Nodes like Linux Nodes by Ansible
Managing windows Nodes like Linux Nodes by AnsibleManaging windows Nodes like Linux Nodes by Ansible
Managing windows Nodes like Linux Nodes by Ansible
 
Custom post-framworks
Custom post-framworksCustom post-framworks
Custom post-framworks
 
aptly: Debian repository management tool
aptly: Debian repository management toolaptly: Debian repository management tool
aptly: Debian repository management tool
 

Andere mochten auch

Alfresco : Extending The Alfresco Content Model
Alfresco : Extending The Alfresco Content ModelAlfresco : Extending The Alfresco Content Model
Alfresco : Extending The Alfresco Content Model
Wildan Maulana
 
Getting started with Alfresco in the cloud
Getting started with Alfresco in the cloudGetting started with Alfresco in the cloud
Getting started with Alfresco in the cloud
Paul Hampton
 
Alfresco scalability and performnce
Alfresco   scalability and performnceAlfresco   scalability and performnce
Alfresco scalability and performnce
Paul Hampton
 

Andere mochten auch (20)

Extending share: from the outside in
Extending share: from the outside inExtending share: from the outside in
Extending share: from the outside in
 
Alfresco : Extending The Alfresco Content Model
Alfresco : Extending The Alfresco Content ModelAlfresco : Extending The Alfresco Content Model
Alfresco : Extending The Alfresco Content Model
 
Bee con2016 presentation_20160125004_installing
Bee con2016 presentation_20160125004_installingBee con2016 presentation_20160125004_installing
Bee con2016 presentation_20160125004_installing
 
Alfresco mobile
Alfresco mobileAlfresco mobile
Alfresco mobile
 
Social Savvy Business
Social Savvy BusinessSocial Savvy Business
Social Savvy Business
 
Bee con2016 lightning_20160125005_ocr
Bee con2016 lightning_20160125005_ocrBee con2016 lightning_20160125005_ocr
Bee con2016 lightning_20160125005_ocr
 
BeeCon 2016 Alfresco Engineering lightning talk
BeeCon 2016 Alfresco Engineering lightning talkBeeCon 2016 Alfresco Engineering lightning talk
BeeCon 2016 Alfresco Engineering lightning talk
 
Alfresco - Floating on the cloud
Alfresco - Floating on the cloudAlfresco - Floating on the cloud
Alfresco - Floating on the cloud
 
Summit2014 topic 0066 - 10 enhancements that require 10 lines of code
Summit2014 topic 0066 - 10 enhancements that require 10 lines of codeSummit2014 topic 0066 - 10 enhancements that require 10 lines of code
Summit2014 topic 0066 - 10 enhancements that require 10 lines of code
 
Extending Share: Real World Examples
Extending Share: Real World ExamplesExtending Share: Real World Examples
Extending Share: Real World Examples
 
Firma electrónica
Firma electrónicaFirma electrónica
Firma electrónica
 
Getting started with Alfresco in the cloud
Getting started with Alfresco in the cloudGetting started with Alfresco in the cloud
Getting started with Alfresco in the cloud
 
Desarrollando software para Alfresco (keensoft)
Desarrollando software para Alfresco (keensoft)Desarrollando software para Alfresco (keensoft)
Desarrollando software para Alfresco (keensoft)
 
Alfresco scalability and performnce
Alfresco   scalability and performnceAlfresco   scalability and performnce
Alfresco scalability and performnce
 
Lightning barcelona 2-6_synchronizing-activiti-user-tasks
Lightning barcelona 2-6_synchronizing-activiti-user-tasksLightning barcelona 2-6_synchronizing-activiti-user-tasks
Lightning barcelona 2-6_synchronizing-activiti-user-tasks
 
Formación WS
Formación WSFormación WS
Formación WS
 
Alfresco : Planning
Alfresco : PlanningAlfresco : Planning
Alfresco : Planning
 
Content Intelligence on Alfresco with A.A.A.R. (BeeCon 2016)
Content Intelligence on Alfresco with A.A.A.R. (BeeCon 2016)Content Intelligence on Alfresco with A.A.A.R. (BeeCon 2016)
Content Intelligence on Alfresco with A.A.A.R. (BeeCon 2016)
 
Zia Fresh Project demo
Zia   Fresh Project demoZia   Fresh Project demo
Zia Fresh Project demo
 
Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?
 

Ähnlich wie Summit2014 topic 0153 - Alfresco Maven for shared properties

Ähnlich wie Summit2014 topic 0153 - Alfresco Maven for shared properties (20)

Apache Maven basics
Apache Maven basicsApache Maven basics
Apache Maven basics
 
Maven
MavenMaven
Maven
 
Maven
MavenMaven
Maven
 
Maven in Mule
Maven in MuleMaven in Mule
Maven in Mule
 
Training in Android with Maven
Training in Android with MavenTraining in Android with Maven
Training in Android with Maven
 
Maven introduction in Mule
Maven introduction in MuleMaven introduction in Mule
Maven introduction in Mule
 
Maven
MavenMaven
Maven
 
Maven
MavenMaven
Maven
 
Maven
MavenMaven
Maven
 
Using Maven2
Using Maven2Using Maven2
Using Maven2
 
Maven iii
Maven iiiMaven iii
Maven iii
 
Maven part 3
Maven part 3Maven part 3
Maven part 3
 
Building and managing java projects with maven part-III
Building and managing java projects with maven part-IIIBuilding and managing java projects with maven part-III
Building and managing java projects with maven part-III
 
Maven iii
Maven iiiMaven iii
Maven iii
 
Ant
AntAnt
Ant
 
Phing
PhingPhing
Phing
 
Ant_quick_guide
Ant_quick_guideAnt_quick_guide
Ant_quick_guide
 
Introduction To Ant
Introduction To AntIntroduction To Ant
Introduction To Ant
 
Pom
PomPom
Pom
 
Pom configuration java xml
Pom configuration java xmlPom configuration java xml
Pom configuration java xml
 

Mehr von Angel Borroy López

Before & After Docker Init
Before & After Docker InitBefore & After Docker Init
Before & After Docker Init
Angel Borroy López
 

Mehr von Angel Borroy López (20)

Transitioning from Customized Solr to Out-of-the-Box OpenSearch
Transitioning from Customized Solr to Out-of-the-Box OpenSearchTransitioning from Customized Solr to Out-of-the-Box OpenSearch
Transitioning from Customized Solr to Out-of-the-Box OpenSearch
 
Alfresco integration with OpenSearch - OpenSearchCon 2024 Europe
Alfresco integration with OpenSearch - OpenSearchCon 2024 EuropeAlfresco integration with OpenSearch - OpenSearchCon 2024 Europe
Alfresco integration with OpenSearch - OpenSearchCon 2024 Europe
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Using Generative AI and Content Service Platforms together
Using Generative AI and Content Service Platforms togetherUsing Generative AI and Content Service Platforms together
Using Generative AI and Content Service Platforms together
 
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
 
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
 
Docker Init with Templates for Alfresco
Docker Init with Templates for AlfrescoDocker Init with Templates for Alfresco
Docker Init with Templates for Alfresco
 
Before & After Docker Init
Before & After Docker InitBefore & After Docker Init
Before & After Docker Init
 
Alfresco Transform Services 4.0.0
Alfresco Transform Services 4.0.0Alfresco Transform Services 4.0.0
Alfresco Transform Services 4.0.0
 
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseHow to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
 
Using Podman with Alfresco
Using Podman with AlfrescoUsing Podman with Alfresco
Using Podman with Alfresco
 
CSP: Evolución de servicios de código abierto en un mundo Cloud Native
CSP: Evolución de servicios de código abierto en un mundo Cloud NativeCSP: Evolución de servicios de código abierto en un mundo Cloud Native
CSP: Evolución de servicios de código abierto en un mundo Cloud Native
 
Alfresco Embedded Activiti Engine
Alfresco Embedded Activiti EngineAlfresco Embedded Activiti Engine
Alfresco Embedded Activiti Engine
 
Alfresco Transform Core 3.0.0
Alfresco Transform Core 3.0.0Alfresco Transform Core 3.0.0
Alfresco Transform Core 3.0.0
 
Collaborative Editing Tools for Alfresco
Collaborative Editing Tools for AlfrescoCollaborative Editing Tools for Alfresco
Collaborative Editing Tools for Alfresco
 
Desarrollando una Extensión para Docker
Desarrollando una Extensión para DockerDesarrollando una Extensión para Docker
Desarrollando una Extensión para Docker
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdf
 
Deploying Containerised Open-Source CSP Platforms
Deploying Containerised Open-Source CSP PlatformsDeploying Containerised Open-Source CSP Platforms
Deploying Containerised Open-Source CSP Platforms
 
Introduction to AWS
Introduction to AWSIntroduction to AWS
Introduction to AWS
 
Alfresco Certificates
Alfresco Certificates Alfresco Certificates
Alfresco Certificates
 

Kürzlich hochgeladen

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Summit2014 topic 0153 - Alfresco Maven for shared properties

  • 1.
  • 2. From Venus to Mars Developer land Real world
  • 3. Maven Alfresco SDK is fun! -Pamp-to-war Share AMP Archetype Alfresco AMP Archetype
  • 4. What about deployments? Real world has environments…! !! TEST PRE PRO … and integrated systems! TEST PRE PRO
  • 5. Properties everywhere REPO SHARE! !!!!! INT 1 INT 2 TEST + PRE + PRO! INT 3 INT 1 INT 2 INT 3
  • 7. 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
  • 8. 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
  • 9. TEST PRE profiles properties-maven-plugin maven-antrun-plugin PRO Our approach Maven Alfresco SDK to the rescue TEST PRE PRO AMP! TEST PRE PRO
  • 10. TEST PRE profiles properties-maven-plugin maven-antrun-plugin PRO Our approach Maven Alfresco SDK to the rescue TEST PRE PRO AMP! TEST PRE PRO
  • 11. 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
  • 12. 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>
  • 13. 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>
  • 14. 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!
  • 15. Using values <bean id="externalConnection" class="es.keensoft.alfresco.ExternalConnection”> <property name="url" value="${external.system.url}" /> </bean> !!!! amp/config/alfresco/module/service-context.xml … or by message property injection!
  • 16. Packaging !! $ mvn clean package -Ptest AMPs for TEST environment available at! • dist/test/amps! • dist/test/amps_share! AMP!
  • 17. Server signature VerificationClient signature eSignature service Real life A sample on where it can be useful
  • 18. Server signature VerificationClient signature eSignature service Real life A sample on where it can be useful
  • 19. Properties # 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 conf/pre.alfresco-ast.properties
  • 20. 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}" /> !
  • 21. 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!
  • 22. Resources GitHub" http://github.com/keensoft Twitter @AngelBorroy Blog http://www.keensoft.es/blog