Prerequisites - maksudsharif/Armedia-Training-Module GitHub Wiki
#Prerequisites
If you can help yourself, don’t go and start reading the Alfresco’s documentation through its entirety or anything like that. Make sure you understand the following foundation concepts first (or re-familiarize yourself if it’s been awhile since you’ve used these concepts). Alfresco uses all these concepts.
Spring Framework - http://javabrains.koushik.org/spring.html (Learning Spring Core Courses)
- Unit 1, Understanding DI
- Unit 1, Setting Up
- Unit 1, Understanding Spring Bean Factory
- Unit 1, Writing Code Using the Bean Factory
- Unit 1, ApplicationContext and Property initialization
- Unit 1, Using Constructor Injecting
- Unit 1, Injecting Objects
- Unit 1, Bean Autowiring
- http://code.tutsplus.com/tutorials/a-beginners-guide-to-http-and-rest--net-16340%20 (Read up to the PHP tutorial section but do not need to do the PHP tutorial)
- http://www.drdobbs.com/web-development/restful-web-services-a-tutorial/240169069
- Review Model-View-Controller (MVC) design pattern with simple java tutorial - http://www.tutorialspoint.com/design_pattern/mvc_pattern.htm
- Work on Java/Spring MVC hello world tutorial - http://www.mkyong.com/spring-mvc/spring-3-rest-hello-world-example/
- Work through additional Spring MVC tutorials - https://www.youtube.com/playlist?list=PLBgMUB7xGcO31B2gBmy1igpZn6LK78-CJ
- http://freemarker.org/docs/preface.html#autoid_2 (What is Freemarker?)
- http://freemarker.org/docs/dgui.html
- http://www.vogella.com/tutorials/FreeMarker/article.html
- http://www.w3schools.com/ajax/ajax_intro.asp
- http://www.codeproject.com/Articles/31155/Ajax-Tutorial-for-Beginners-Part
- TODO: Insert frontpage link here
- http://en.wikipedia.org/wiki/JSON
- http://www.copterlabs.com/blog/json-what-it-is-how-it-works-how-to-use-it/
- http://jsonlint.com/ (JSON validator)
Introduction to Maven - http://javabrains.koushik.org/maven.html
- Unit 1, Introduction and Setting up Part 1
- Unit 1, Introduction and Setting up Part 2
- Unit 1, Understanding Archetypes and
pom.xml
- Unit 1, Maven Build Phases
- Unit 1, Adding a Dependency
- https://project.armedia.com/confluence/display/DELIVERY/Architecture (video)
- http://www.armedia.com/blog/2011/02/beginner-thoughts-on-alfresco-architecture/ (blog)
- https://project.armedia.com/confluence/display/DELIVERY/Alfresco+Training+Guide (Context Diagram only)
The Alfresco Repository
is made up of the following:
- Database
- File System
- Content: Where document files are stored.
- Index files: Where Lucene or Solr index files are stored.
There is a 1-click self-extracting executable (or bin) available to install alfresco. You can specify the modules to install, and do advanced configuration also. We will be installing Alfresco manually to gain a better understanding of alfresco installation. I encourage you to do the 1-click self-extracting module also to see how an install there works as well, as it’s quite different!
- We will be using files in the
AlfrescoBasics101.zip
file located at - TODO: Insert internal link here - TODO: UPDATE FOR 5.0 - We will use Alfresco Enterprise version 4.2.0
- Make note of the Supported Platforms for Alfresco Enterprise 4.2.x when choosing which versions of software you need to install - http://www.alfresco.com/services/subscription/supported-platforms
- Install CentOS 6.5 VM (derived from RHEL) - Here were some steps that may need to be done:
- Make sure your desktop has at least 12 GB RAM (16 is better)
- Create a new virtual machine running CentOS 6.5 (or higher depending on your preference) (64-bit version) - http://isoredirect.centos.org/centos/6/isos/x86_64/
- Choose a mirror
- Get the
CentOS-6.5-x86_64-bin-DVD1.iso
or appropriate iso for your version - This VM will run
Alfresco
,PostGreSQL
, andSOLR
. Give it at least 8G RAM, and probably 20G disk space. The VM files should be on a disk drive other than the OS boot drive.- NOTE: Make sure to not have dashes in your hostname, some apps don’t like that (i.e. Oracle)
- Create a root password
- Create another local user/password
- Choose "Desktop" Setup
- Get network connectivity - https://www.centos.org/forums/viewtopic.php?t=7631
- Install
rpmforge
repository - Run
yum update
as root - Install guest additions as root, install
dkms
,Development Tools
,kernel-devel
- System etho0 (or enp0s) is manual by default, turn to automatic
- Add local user as sudoer as root ( in
visudo
) - Install applications as a non-root-user
- Oracle JDK 7 and 8
- PostGreSQL 9
- Example guide http://www.postgresonline.com/journal/archives/329-An-almost-idiots-guide-to-install-PostgreSQL-9.3,-PostGIS-2.1-and-pgRouting-with-Yum.html
- Ignore the PostGIS and pgRouting parts.
- Example guide http://www.postgresonline.com/journal/archives/329-An-almost-idiots-guide-to-install-PostgreSQL-9.3,-PostGIS-2.1-and-pgRouting-with-Yum.html
- You will need to create a db user for the alfresco db
- Alfresco
- Open up the
ASA_StudentGuide_Enterprise_4x_v1_4.pdf
document, we will be going through certain sections. Throughout the guide, you may see references to other alfresco versions, let’s go ahead and stick with alfresco version 4.2.0 for any exercises. NOTE: Thealfresco-enterprise-4.2.0.zip
file (there's a known minor issue with this package, see MNT-9896 for workarounds) - Install Alfresco license if you will be doing this training for more than 30 days after installation
- http://docs.alfresco.com/4.2/tasks/at-adminconsole-license.html
- TODO: Add links to internal server location for Licenses
- Work through following sections in Student Guide:
- Installation
- All sections
- When you get to Installing the Alfresco WAR alfresco-global.properties configuration; skip ahead to page 14 and page 15 for some examples of the properties you'll need to enable, like:
- dir.root
- db.username
- db.password
- db.url
- ooo.*
- alfresco.*
- share.*
- When you get to Installing the Alfresco WAR alfresco-global.properties configuration; skip ahead to page 14 and page 15 for some examples of the properties you'll need to enable, like:
- Explorer alfresco and share applications:
- Log into http://:/alfresco
- Log into http://:/alfresco/service/index to see all OOB alfresco web services
- Log into http://:/share
- Log into http://:/share/service/index to see all OOB share web services
- NOTE: Don't do the Installation Module lab, you already worked through the sections itself
- All sections
- Installation
- Open up the
- What is an AMP file? https://wiki.alfresco.com/wiki/AMP_Files
- AMP to WAR mapping on AMP install: http://docs.alfresco.com/4.2/concepts/dev-extensions-modules-amp-mapping.html
- Compare this with the out-of-the-box WAR structure for both alfresco and share yourself
- https://wiki.alfresco.com/wiki/Java_Foundation_API
- Access to Java Foundation API beans
- Spring DI
- Search for a couple of the alfresco spring beans available for use in your exploded alfresco and share war applications
- NodeService: note the capital "N"; you want to use the Proxy service version that bypasses security checks, etc. * https://alfrescoshare.wordpress.com/2010/01/06/alfresco-coding-best-practice-how-to-safely-call-java-services/
- serviceRegistry
- Manual access via the Spring getBean() method
private NodeService nodeService = (NodeService) applicationContext.getBean("nodeService");
- Indirectly via Alfresco’s Service Registry
private ServiceRegistry serviceRegistry; NodeService nodeService = serviceRegistry.getNodeService();
- Find out what the exams are about
- Read the exam curriculum
- Armedia Exam Materials
- TODO: Insert Armedia Exam Prep Link