
The Alfresco platform is written in Java and most extensions are written in Java, so we need to have it correctly installed. That is, having the Java Development Kit (JDK) 17 installed, not just the JRE. Maven is also dependent on Java being installed.
In this lecture we generate a Maven-based build project based on an out-of-the-box Maven archetype (i.e. project template). It is time to put the Maven theory into practice.
In this lecture we do a bit of coding to see how we can create some beans and wire them together with Spring. It is time to put the Spring Framework theory into practice.
In this lecture we look at the Alfresco Nexus Repository where all the Alfresco artifacts (i.e. JARs etc) are stored that we define as dependencies in the extension projects.
The extension projects are created from Alfresco Maven Archetypes (i.e. project templates). They need to be downloaded from somewhere. The Maven Central Artifacts Repository is the place.
When building Alfresco customisations they are shipped as a JAR or a so-called AMP. This lecture explains the difference between these artifact types and when to use them.
In this lecture you will learn how to generate a Platform JAR Module project.
In this lecture you will learn how to generate a Share UI JAR Module project.
This lecture provides a practical example of when to use AMPs.
To be able to replicate a "real" content management project we should set up a remote maven repository where we can store and version the artifacts, such as JARs, for our project. This is similar to how Alfresco has its own Maven Repository at artifacts.alfresco.com.
In this lecture we will create an AIO project and clean it up making it ready to be used as an aggregator project. It will pull in other modules (platform, share, utils etc) from the local nexus and build the final artifact.
Let's see how we can create a Jenkins Pipeline that does a git clone on the Aggregator project and then builds the Docker Images.
This project template is called All-in-One as it contains everything you need to develop and test Platform/Repository and Share customisations. In this lecture we show how to generate a project based on this template and explain the structure of the project. It's for ACS 5.2 and uses SDK 3.0
In this lecture we look at the structure of a Platform JAR module. The structure is also applicable to Platform AMPs. For ACS 5.2 and SDK 3.0
In this lecture we look at the structure of a Share JAR module. The structure is also applicable to Share AMPs. For ACS 5.2 and SDK 3.0
Here we look at some of the more significant properties that can be configured for an AIO project. For ACS 5.2 and SDK 3.0
This lecture looks at how you can make sure you develop and run against the Alfresco version that you will be using in production.
Lecture showing how to compile, test, package, and install an AIO project. For ACS 5.2 and SDK 3.0
In this lecture we have a look at how the Alfresco Maven Plugin can be used to run the Alfresco server with the customisations applied (i.e. alfresco:run). There is no need to do a separate full Alfresco installation. For ACS 5.2 and SDK 3.0
The AIO project comes with a number of sample code extensions, both for the platform application (alfresco.war) in the form of a custom REST API (called Web Script in Alfresco lingo), and the UI (share.war) in the form of a custom Share Page (called Aikau Page in Alfresco lingo). We look at how to try them out in this lecture. For ACS 5.2 and SDK 3.0
In this lecture we look at the sample content model that comes with the AIO project. A domain specific content model is fundamental to any content management project, and this sample content model gives you a head start on how to implement one. For ACS 5.2 and SDK 3.0
Shows how to start the Alfresco server via the Alfresco Maven Plugin so it is ready for debugging of Java code. For ACS 5.2 and SDK 3.0
Alfresco SDK 3 includes a new module for integration testing, and a number of example integration tests. This lecture introduces this module and the sample tests.
This lecture shows you the extension project that is used when you only develop customisations for the platform/repository (i.e. the alfresco.war). For ACS 5.2 and SDK 3.0
This lecture shows you the extension project that is used when you only develop customisations for the Share UI (i.e. the share.war). For ACS 5.2 and SDK 3.0
In this lecture we introduce and set up hot-reloading with the open source HotSwap agent.
This lecture shows how to use the HotSwap agent to do hot-reloading of classes and resources for Platform/Repository extensions (i.e. customisations applied to alfresco.war). Enabling Rapid Application Development (RAD). HotSwap is an open source alternative to JRebel.
This lecture shows how to use the HotSwap agent to do hot-reloading of classes and resources for Share UI extensions (i.e. customisations applied to share.war). Enabling Rapid Application Development (RAD). HotSwap is an open source alternative to JRebel.
Developing extensions for Hyland Alfresco Content Management systems can be daunting at first. But if you spend some time getting to know the Software Development Kits (SDKs) available to aid you in developing extensions, then the development journey will be much more pleasant.
There are mainly two development kits available:
* The traditional In-Process SDK 4.x. This SDK has existed since the beginning of Alfresco and has evolved several times. We cover it in detail and even look at an earlier version, 3.x, when containers weren't common practice.
* The new Out-of-Process SDK 5.x. This SDK follows newer best practices of keeping your extensions outside the Alfresco application, enabling easier upgrades of Alfresco and independent development, deployment, and scaling of your extensions.
Larger development projects involving multiple developers usually require some infrastructure, such as Artifacts Repository and CI server, to be considered. We look at how you can use Nexus Repository manager to store stand-alone extensions and how to build them with Jenkins CI Server.
This course is mostly about Alfresco Content Services (ACS) development and the officially supported SDKs. But we will also look at an unofficial SDK for developing extensions for Alfresco Process Services (APS), just so you know it exists.
“Hyland Alfresco Developer - Software Development Kits (SDKs)” is an independently developed course by Martin Bergljung and has not been created, endorsed, or verified by Hyland Software, Inc.. Hyland Software, Inc. shall not have any liability with respect to the “Hyland Alfresco Developer - Software Development Kits (SDKs)” course offered by Martin Bergljung.